我们有两台服务器,服务器A和服务器B.服务器A专用于运行django Web应用程序。 由于有大量数据,我们决定在服务器 B 中运行芹菜任务。 服务器 A 和 B 使用公共数据库。任务在从服务器 A,webapp 在模型中保存后启动。如何在我的 django 项目中使用 rabbitmq 实现这个想法
您有 2 台服务器、1 个项目和 2 个设置(每个服务器 1 个(。
服务器 A(Web 服务器 + rabbit
服务器 B(仅对辅助角色celery
(
然后,在这两个设置中设置代理 URL。像这样:
BROKER_URL = 'amqp://user:password@IP_SERVER_A:5672//'
服务器 B 设置中将服务器 A 与服务器 A 的 IP 匹配。
目前,任何任务都必须发送到服务器 A 中的rabbit
虚拟服务器/。
在服务器 B 中,您只需初始化celery
工作线程,如下所示:
python manage.py celery worker -Q queue_name -l info
仅此而已。
说明:django
向rabbit
发送消息以对任务进行排队,然后celery
工作人员请求一些消息来执行任务。
注意:不需要在服务器 A 中安装rabbitMQ
,您可以在服务器 C 中安装 rabbit,并在两个设置(A 和 B(的BROKER_URL
中引用它,如下所示:BROKER_URL='amqp://user:password@IP_SERVER_C:5672//'
。
对不起我的英语。
问候。