【发布时间】: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 进程来实现呢?
【问题讨论】:
-
在应用层实现,带有信号量,对我来说要简单得多。