Как мне отложить задачу с помощью сельдерея? - PullRequest
6 голосов
/ 29 июля 2010

Не говорю о методе delay.

Я хочу иметь возможность получить задачу, учитывая ее task_id и изменить ее ETA на лету, прежде чем она будет выполнена.

На данный момент я должен отменить его и изменить его. Неприятно, если в запланированный процесс вовлечено много вещей.

Ответы [ 2 ]

1 голос
/ 15 мая 2011

Если вы используете django-celery и PeriodicTask с DatabaseScheduler, вам нужно изменить интервал PeriodicTask или crontab и сохранить его. Если ваша задача определяется интервалом, измените свойство last_run_at.

Вы запускаете celerybeat с планировщиком базы данных с:

python manage.py celerybeat -S djcelery.schedulers.DatabaseScheduler
1 голос
/ 29 июля 2010

Вы должны хранить некоторое значение 'pause' вне очереди сельдерея / задачи. Я делаю это с помощью почтовой программы с использованием сельдерея. Я могу приостановить части системы, установив значения либо в memcache или mysql. Задачи затем проверяют внешний ресурс перед выполнением задачи. Если он должен быть приостановлен, он устанавливает task.retry (), который заставляет его проходить через время задержки повтора и тому подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...