你可以在与Django不同的容器中运行Celery吗?

从今天的阅读中,在我发现的所有例子中,我都没有看到芹菜在与Django本身完全独立的容器中的位置.似乎Celery必须在同一容器中,因为它遍历应用程序源文件并查找tasks.py以及最初的celery.py这是正确的还是我今天误读了?

例如.我熟悉使用docker-compose来启动Django,Nginx,Postgres和一个存储容器.我假设我要添加一个芹菜和rabbitmq容器,但我认为没有办法配置Django来使用远程Celery服务器.

我对Celery的理解还很早,我希望这不是我在其他地方忽视的东西.

谢谢,
-p

最佳答案 默认情况下,如果您使用Heroku,它会运行一个Web Dyno for
django来响应请求,而另一个工作者Dyno for Celery,每个Dyno运行在一个单独的实例上.

两个Dynos都运行相同的代码,你的芹菜工人需要访问模型,并且很容易管理/部署一个代码库,但没有什么能阻止你为每个实例使用不同的代码库,因为Django和Celery之间的通信是用AMQP协议完成抛出像Reddis这样的经纪人.

点赞