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

时间:2016-04-05 23:47:21

标签: django celery django-celery

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

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

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

谢谢,
-p

1 个答案:

答案 0 :(得分:2)

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

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