【问题标题】:celery - set different number of workers for different queuescelery - 为不同的队列设置不同数量的工人
【发布时间】:2017-12-31 02:48:07
【问题描述】:

我有一个包含很多 Celery 任务的项目,其中一项任务一次只能执行一个(这是对不允许多个并发连接的第 3 方 API 的请求)。

我可以通过使用单独的队列和 1 的并发启动单独的 celery 进程来实现这一点。

普通芹菜流程:

celery -A sourcery worker -Q default -c 4

一个单独的单工作进程:

celery -A sourcery worker -Q separate_queue -c 1

但是我在 Heroku 上,我会因为启动两个进程而不是一个进程而被加倍收费。那么,有没有办法通过单个 Celery 进程来实现呢?

【问题讨论】:

  • 在应用层实现,带有信号量,对我来说要简单得多。

标签: heroku celery


【解决方案1】:

目前没有办法做到这一点。

我有一个类似的问题,我有一个只允许一个并发连接的 3rd 方 API。我最终在 Heroku 上运行了两个独立的测功机。

确实有人请求了这个功能,但尚未实现:https://github.com/celery/celery/issues/1599

编辑:

有一种叫做 celery-multi 的东西值得研究:

Celery - run different workers on one server

我不确定它是否与 Heroku 兼容,如果您尝试请告诉我!

【讨论】:

    猜你喜欢
    • 2018-12-27
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    相关资源
    最近更新 更多