也有类似的问题。我已经使用Django Celery RabbitMQ运行了多个生产应用程序,到目前为止效果很好。然而,现在有一位客户,我们需要在他的虚拟机上运行三个独立的Django应用程序,每个应用程序都有一个Celery应用程序。
在将Celery作为单机版运行时,我遵循了这些文档。它们就像一种魅力。我说的是/etc/init.d/celeryd选项。
问题是init.d脚本指向一个脚本/etc/default,并且只有一个选项可以添加目录和其他设置来指向正确的Django应用程序。
https://docs.celeryproject.org/en/latest/userguide/daemonizing.html#example-配置
然而,我还没有看到任何文档,如果在同一个VM中,我需要更改什么配置,对于同一个Rabbit MQ服务器,我们需要进行更改。
简言之,我如何在一台机器上运行多个Django应用程序,其中包含celeni和Rabbit MQ。应用程序正在使用不同的python虚拟机
/usr/lib/systemd/system/
中会有appA-celery.service,以及appB-celery.seervice和appC-celery.server。类似的情况也发生在旧的/etc/init.d(SysV(处理服务的方式中。
另一种解决方案是运行一个工作进程,订阅N个不同的队列(针对每个应用程序(,并配置应用程序将任务发送到其专用队列。