基于这个问题:
姜戈芹菜时间限制超过?
我有一些任务可能会运行一段时间。但是,大多数任务不应超过几秒钟。我不想设置全局超时来考虑那些长时间运行的任务。相反,我希望有一个较短的全局硬时间限制,并手动调整我需要更长超时的任务。
用@task装饰任务时,我做了@task(timeout=None),但是,该任务仍然达到了300秒的超时。我用task_function.delay(args)调用了这个任务。
有没有办法调用任务并自定义它的超时?
此问题解决了可以使用自定义超时调用任务的情况。它在 issue802 分支中实现,但尚未在 master 中实现。您可以将其与 master 合并并使用所需的功能。
使用此修补程序,您可以在调用任务时传递超时。
tasks.add.apply_async(args=[1,2], soft_timeout=2, timeout=5)
您运行的是什么版本的芹菜? 当前的稳定文档列表time_limit
作为设置任务超时的正确参数,如果未提供时间限制,将使用工作线程默认值。 要为任务设置较长(例如 60 分钟)超时,您可以使用:
@task(time_limit=3600)
def mytask():
...
或者,您可以使用apply_async在调用任务时更改时间限制:
mytask.apply_async(time_limit=3600, args=args)