Closed fizz closed 6 years ago
That should work, but currently doesn't because the TimeLimit
middleware only looks at actor options right now.
This line:
https://github.com/Bogdanp/dramatiq/blob/master/dramatiq/middleware/time_limit.py#L85
Should be:
limit = message.options.get("time_limit") or actor.options.get("time_limit", self.time_limit))
I'll put out a fix this weekend. Thanks for the report!
Use case: I have an actor that sometimes takes longer than 10 minutes to run. I can predict this. Let's say I want to double the default time_limit. If I use the decorator
@actor(time_limit=1_200_000)
then the actor will always have the 20-minute time_limit. I only want to increase the time_limit when I know I'm handing the actor a larger amount of work. Usually, I want it to have the default time_limit.quirky_actor.message_with_options(args=(config.get('whats_my_motivation'),), time_limit=1_000*60*20)
I'm having a hard time figuring out if this even works. Should it work?