你能 运行 Celery 在与 Django 不同的容器中吗?
Can you run Celery in a different container from Django?
根据我今天的阅读,在我发现的所有示例中,我没有看到芹菜位于与 Django 本身完全独立的容器中。似乎 Celery has 在同一个容器中,因为它遍历应用程序源文件并查找 tasks.py 以及初始 celery.py 是正确的吗还是我今天看错了?
例如。我熟悉使用 docker-compose 启动 Django、Nginx、Postgres 和存储容器。我假设我要添加一个 celery 和 rabbitmq 容器,但我看不到配置 Django 以使用远程 Celery 服务器的方法。
我对 Celery 的了解还很早,我希望这不是我在其他地方忽略的东西。
谢谢,
-p
默认情况下,如果你使用 Heroku 就会发生这种情况,它 运行 一个用于 django 的 web Dyno 来响应请求,另一个 worker Dyno 用于 Celery,每个 Dyno 运行 在一个单独的实例.
两个 Dynos 运行 相同的代码,你的 celery worker 需要访问模型,manage/deploy 一个代码库很容易,但是没有什么能阻止你使用不同的代码库每个实例,因为 Django 和 Celery 之间的通信是通过 AMQP 协议完成的,抛出像 Reddis 这样的 Broker。
根据我今天的阅读,在我发现的所有示例中,我没有看到芹菜位于与 Django 本身完全独立的容器中。似乎 Celery has 在同一个容器中,因为它遍历应用程序源文件并查找 tasks.py 以及初始 celery.py 是正确的吗还是我今天看错了?
例如。我熟悉使用 docker-compose 启动 Django、Nginx、Postgres 和存储容器。我假设我要添加一个 celery 和 rabbitmq 容器,但我看不到配置 Django 以使用远程 Celery 服务器的方法。
我对 Celery 的了解还很早,我希望这不是我在其他地方忽略的东西。
谢谢,
-p
默认情况下,如果你使用 Heroku 就会发生这种情况,它 运行 一个用于 django 的 web Dyno 来响应请求,另一个 worker Dyno 用于 Celery,每个 Dyno 运行 在一个单独的实例.
两个 Dynos 运行 相同的代码,你的 celery worker 需要访问模型,manage/deploy 一个代码库很容易,但是没有什么能阻止你使用不同的代码库每个实例,因为 Django 和 Celery 之间的通信是通过 AMQP 协议完成的,抛出像 Reddis 这样的 Broker。