【发布时间】:2017-05-10 09:29:26
【问题描述】:
我的同事已经编写了 celery 任务,在设置文件中进行了必要的配置,还有主管的配置文件。一切正常。项目已移交给我,但我发现了一些我必须解决的问题。
有两个项目在一台机器上运行,两个项目几乎相同,我们称它们为projA和projB。
supervisord.conf 文件如下:
;for projA
[program:celeryd]
directory=/path_to_projA/
command=celery -A project worker -l info
...
[program:celerybeat]
directory=/path_to_projA/
command=celery -A project beat -l info
...
; For projB
[program:celerydB]
directory=/path_to_projB/
command=celery -A project worker -l info
...
[program:celerybeatB]
directory=/path_to_projB/
command=celery -A project beat -l info
...
问题是,我正在通过循环创建任务,并且只从projA 的celeryd 接收到一个任务,并且没有收到剩余的任务(或者可以由projB 的celeryd 接收) .
但是当我停止 projB 的 celery 程序时,一切正常。 请注意, django-app 的实际名称是 project 因此 celery -A project worker/beat -l info。
请裸露,我是芹菜新手,感谢您的帮助。 TIA。
【问题讨论】:
-
您是否对两个项目使用相同的代理?看起来这就是这里的问题。尝试为两者使用单独的代理。
-
请提供您的 celery 设置。
标签: python django celery supervisord