1

我有一个每分钟运行一次的周期性 celery 任务,如下所示:

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

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

我在文档中读到了关于覆盖 的is_due方法schedules,但我不知道该怎么做才能给出我在这里寻找的行为。有人可以帮忙吗?

4

1 回答 1

0

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

于 2014-07-17T22:24:13.070 回答