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

Pat*_*ick 5 django celery django-celery

从今天的阅读中,在所有示例中,我发现在与Django完全不同的容器中没有发现芹菜的任何地方。它好像芹菜是在同一容器中,因为它走的应用程序的源文件,并查找tasks.py以及初始celery.py那是正确的还是今天的表现我误读?

例如。我熟悉使用docker-compose来启动Django,Nginx,Postgres和一个存储容器。我以为我要添加一个celery和rabbitmq容器,但是我看不到将Django配置为使用远程Celery服务器的方法。

我对Celery的了解还很早,我希望这不是我在其他地方忽略的事情。

谢谢
-p

ahm*_*med 3

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

两个 Dynos 运行相同的代码,您的 celery 工作线程需要访问模型,并且很容易管理/部署一个代码库,但是没有什么可以阻止您为每个实例使用不同的代码库,因为 Django 和 Celery 之间的通信是使用AMQP协议完成后,会抛出像 Reddis 这样的 Broker。

  • @HelgeSchneider通常,你必须部署完全相同的应用程序,唯一的区别是启动命令,例如:对于 django 来说,如果你在 celery 容器中运行 django 命令,那么对于 celery 来说,它是 `gunicorn app.wsgi` 。它应该可以工作,两个环境相似 (2认同)