有没有办法在django的settings.py
CELERYD_TASK_SOFT_TIME_LIMIT
中声明默认的倒数计时器?如果不是在我基于类的周期性任务中总是声明它,那将会很有帮助吗?
try:
ddd
except Exception as exc:
raise self.retry(exc=exc)
是否可以将retry=True
的默认设置为所有任务?
答案 0 :(得分:1)
看起来你可以这样做:
app.config_from_object('django.conf:settings', namespace='CELERY')
在django.conf中
CELERY_SOFT_TIME_LIMIT = 120
CELERY_TIME_LIMIT = 240
这是celery django配置文档。
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html
以下是配置选项列表。
http://docs.celeryproject.org/en/latest/userguide/configuration.html
我无法找到全局任务重试设置,但我发誓我在某处看到了它。 但是,您可以在每个任务级别设置重试,也可以传递硬时间和软时间限制。
@app.task(max_retries=10, time_limit=240, soft_time_limit=120)
def task(self, auth, message):
#do_stuff
以下是您可以为芹菜装饰者提供的选项列表。 http://docs.celeryproject.org/en/latest/reference/celery.app.task.html#celery.app.task.Task.retry