【发布时间】:2014-10-27 15:34:53
【问题描述】:
我在一个项目中使用 Celery,我将它用作调度程序(作为定期任务)。
我的 Celery 任务如下所示:
@periodic_task(run_every=timedelta(seconds=300))
def update_all_feed():
feed_1()
feed_2()
...........
feed_n()
但是随着提要数量的增加,到达其他提要需要很长时间(例如,当 Celery 使用提要编号 n 时,需要很长时间才能到达下一个提要 (n+1)。我想要使用 Celery 的并发来启动多个 feed。
浏览文档后,我发现我可以像下面这样调用 celery 任务:
feed.delay()
如何配置 celery 以便它获取所有提要 ID 并聚合它们(例如,一次 5 个提要)?我意识到要实现这一点,我必须将 Celery 作为守护进程运行。
注意:我使用 mongodb 作为代理,我所做的只是安装它并在 Celery 的配置中添加 url。
【问题讨论】:
标签: python asynchronous celery distributed task-queue