7

不谈delay方法。

我希望能够得到一个任务,因为它是 task_id 并在执行之前动态更改它的 ETA。

现在我必须取消它,并重新安排一个。如果计划的过程涉及很多东西,那就麻烦了。

4

2 回答 2

1

您应该在芹菜/任务队列之外存储一些“暂停”值。我用一个使用芹菜的邮件来做到这一点。我可以通过在 memcache 或 mysql 中设置值来暂停部分系统。然后,任务确保在执行任务之前查询外部资源。如果它打算暂停,它会设置它执行 task.retry() ,导致它经历重试延迟时间等。

于 2010-07-28T23:10:42.567 回答
1

假设您使用 django-celery 和 PeriodicTask 和 DatabaseScheduler,您需要修改 PeriodicTask 间隔或 crontab 并保存。如果您的任务由间隔定义,请修改该last_run_at属性。

您使用数据库调度程序运行 celerybeat:

python manage.py celerybeat -S djcelery.schedulers.DatabaseScheduler
于 2011-05-15T07:59:11.643 回答