我们正在用Django-Celery做一些疯狂有趣的事情。我们的一些任务需要一段时间,我们想让他们做自己的事情。我尝试将CELERYD_TASK_TIME_LIMIT设置为一个大值,例如 86400(24 小时(,但我的任务仍然在 5 分钟时报告时间限制已超出。我已经阅读了文档的次数比我想要记住的要多,但我找不到任何引用CELERYD_TASK_TIME_LIMIT默认值或最大值的内容。
对我们来说,有两个非常有价值的问题:
- CELERYD_TASK_TIME_LIMIT的最大值是多少?(现在似乎是 5 分钟,或 300(
- 为什么无法将"CELERYD_TASK_TIME_LIMIT"设置为"无"?(是的,我很确定我理解潜在僵尸工人的影响(
在 settings.py
CELERYD_TASK_TIME_LIMIT = 86400 #24 hours
CELERYD_TASK_SOFT_TIME_LIMIT = 86400
要回答您关于默认值的问题...CELERYD_TASK_TIME_LIMIT
和 CELERYD_TASK_SOFT_TIME_LIMIT
的默认值均为 None
。 这些值没有记录在案,代码库的简单 grep 也不会对你有多大帮助。 我记录了应用程序.conf
的所有值以找出自己:
>>> import celery
>>> app = celery.Celery()
>>> app.conf