Heroku/Celery:一名工人同时执行任务?

Posted

技术标签:

【中文标题】Heroku/Celery:一名工人同时执行任务?【英文标题】:Heroku/Celery: Simultaneous tasks on one worker? 【发布时间】:2012-09-22 03:36:54 【问题描述】:

是否可以使用 Celery 设置多个更新任务,以便在 Django/Heroku 上同时在一个工作人员上运行?如果我安排某些功能每 5 分钟运行一次,它们会在开始运行时自动重叠,还是会等到所有其他任务完成?我是 Celery 的新手,坦率地说,我对它能做什么感到困惑? ):

【问题讨论】:

【参考方案1】:

默认情况下,Celery 使用多处理来执行任务的并发执行。 Celery worker 启动一个进程池来消耗任务。池中的进程数由 --concurrency 参数设置,默认为机器上可用的 CPU 数。

因此,如果并发级别大于 1,则任务将并行处理。

【讨论】:

所以本质上,在 celery beat 中指定重叠时间(每 15 分钟 10 个任务)是可以的,如果一次尝试超过 concurrency 参数,任务将自动排队? celerybeat 定期发布任务。即使任务不同时发布,也可以并行处理。

以上是关于Heroku/Celery:一名工人同时执行任务?的主要内容,如果未能解决你的问题,请参考以下文章

Heroku celery 后台任务

Heroku + Celery - 拒绝连接

使用 Heroku 安装 Celery 和 Redis

java中多线程地并发运行是啥意思?有啥作用.好处?

基于技能公平分配任务给工人的算法

工人、工人实例和执行者之间的关系是啥?