在运行时动态更改celery任务的周期性间隔

时间:2014-07-07 10:40:20

标签: dynamic celery django-celery celerybeat periodic-task

我有一个每分钟运行一次的定期芹菜任务,如下所示:

#tasks.py
@periodic_task(run_every=(crontab(hour="*", minute="*", day_of_week="*")))          
def scraping_task():
    result = pollAPI()

正如您可能从名称中猜到的那样,函数pollAPI()会轮询API。问题在于API具有未公开的速率限制,并且如果达到该限制,则有时会给出错误响应。我希望能够接受该响应,如果达到限制,则动态减少周期性任务间隔(或者甚至暂停任务一段时间)。这可能吗?

我在文档中读到了覆盖is_due schedules {{1}}方法的问题,但我对如何处理我在这里寻找的行为感到很遗憾。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用celery.conf.update更新CELERYBEAT_SCHEDULE