2017-07-25 29 views
1

我有一个有很多Celery任务的项目,其中一个任务一次只能执行一个(这是对第三方API的请求,它禁止多个并发连接)。芹菜 - 为不同的队列设置不同数量的工作人员

我可以通过启动一个独立的芹菜过程与单独的队列和并发实现这一1.

普通芹菜过程:

celery -A sourcery worker -Q default -c 4 

一个单独的单工作进程:

celery -A sourcery worker -Q separate_queue -c 1 

但是我在Heroku上,而且我将双倍地为两个进程而不是一个进程计费。那么,是否有一种方法可以通过单一的Celery过程来实现?

+0

在应用层实现,带有信号量,对我来说更简单。 – georgexsh

回答

0

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

我有一个类似的问题,我有一个第三方API只允许一个并发连接。我最终在Heroku上运行了两个独立的dynos。

的确有人要求此功能,但它一直没有执行:https://github.com/celery/celery/issues/1599

编辑:

有一种叫做芹菜多,可能是值得探讨:

Celery - run different workers on one server

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

相关问题