Судя по этой ветке, проблема решена, но похоже, что это не так. Установка ограничения времени для конкретной задачи с сельдереем
Моя текущая версия Celery — 3.1.18 (Cipater).
Я пытаюсь перезаписать настройки задачи по умолчанию. Цель состоит в том, чтобы изменить мягкое и жесткое ограничение времени задачи, поскольку одна и та же задача используется для нескольких целей.
Передача soft_time_limit и time_limit в конструктор MyTask для изменения настроек по умолчанию.
///celery/app/ task.py
class MyTask(task.Task):
time_limit = 100
soft_time_limit = 110
max_retries = 0
def __init__(self, time_limit=None, soft_time_limit=None,
max_retries=None, *args, **kwargs):
if time_limit:
self.time_limit = time_limit
if soft_time_limit:
self.soft_time_limit = soft_time_limit
if max_retries:
self.max_retries = max_retries
task.Task.__init__(self, *args, **kwargs)
t1 = MyTask(time_limit=30, soft_time_limit=20,
max_retries=5)
or
t1 = MyTask()
t1.time_limit = 30
t1.soft_time_limit = 20
Затем передайте t1.si() в task.RetryableChain(...)
job = task.RetryableChain(...)
job.delay()
Когда метод запуска вызывается работником, он по-прежнему получает старое значение (time_limit = 100), тогда как я установил time_limit = 30.
Пожалуйста, дайте мне знать, если проблема все еще существует в версии 3.1.18.