两个应用程序使用芹菜计划的任务:“收到未注册的任务”错误之一的工人

2024-09-28 23:16:33 发布

您现在位置:Python中文网/ 问答频道 /正文

场景:

  • 两个不相关的web应用程序,在同一台服务器上运行芹菜后台任务
  • 一个RabbitMQ实例
  • 每个web应用程序都有自己的virtualenv(包括芹菜)。两个virtualenv中的芹菜版本相同

我使用以下命令行为每个应用程序启动一个worker和一个beat进程

celery -A firstapp.tasks worker
celery -A firstapp.tasks beat
celery -A secondapp.tasks worker --hostname foobar
celery -A secondapp.tasks beat

现在似乎一切正常,但在secondapp的工作进程中,我得到以下错误:

Received unregistered task of type 'firstapp.tasks.do_something'

有没有办法把这两个芹菜分开

我用的是芹菜3.1.16版,顺便说一句


Tags: 服务器web应用程序virtualenv进程场景rabbitmqtasks
1条回答
网友
1楼 · 发布于 2024-09-28 23:16:33

我相信我通过创建一个RabbitMQ vhost并配置第二个应用程序来使用它,解决了这个问题

创建vhost(并设置权限):

sudo rabbitmqctl add_vhost /secondapp
sudo rabbitmqctl set_permissions -p /secondapp guest ".*" ".*" ".*"

然后更改第二个应用程序的命令行:

celery -A secondapp.tasks -b amqp://localhost//secondapp worker
celery -A secondapp.tasks -b amqp://localhost//secondapp beat

相关问题 更多 >