单独服务器中的 Django 芹菜任务

Django celery tasks in separate server

我们有两台服务器,服务器 A 和服务器 B。服务器 A 专用于 运行ning django web 应用程序。由于数据量很大,我们决定 运行 服务器 B 中的 celery 任务。服务器 A 和 B 使用公共数据库。任务在 post 保存在服务器 A,webapp 的模型中后启动。如何在我的 django 项目中使用 rabbitmq 实现这个想法

您有 2 个服务器、1 个项目和 2 个设置(每个服务器 1 个)。

服务器 A(网络服务器 + rabbit

服务器 B(仅 celery 供工作人员使用)

然后您在两个设置中设置代理 url。像这样:

BROKER_URL = 'amqp://user:password@IP_SERVER_A:5672//' 将服务器 A 匹配到服务器 B 设置中服务器 A 的 IP。

现在,任何任务都必须发送到服务器 A 中的 rabbit 到虚拟服务器 /。

在服务器 B 中,您必须只初始化 celery worker,如下所示:

python manage.py celery worker -Q queue_name -l info

就是这样。

说明django发送消息到rabbit排队任务,然后celery工人请求一些消息来执行任务。

注意:不需要在A服务器安装rabbitMQ,可以在C服务器安装rabbit,在BROKER_URL中引用] 在两个设置(A 和 B)中都是这样的:BROKER_URL='amqp://user:password@IP_SERVER_C:5672//'.

对不起我的英语。

问候。