我们有两台服务器,服务器A和服务器B.服务器A专用于运行django Web应用程序。由于大量数据,我们决定在服务器B中运行芹菜任务。服务器A和B使用公共数据库。在服务器A,webapp的模型中保存后保存任务。如何在我的django项目中使用rabbitmq实现这个想法
答案 0 :(得分:8)
您有2台服务器,1个项目和2个设置(每台服务器1台)。
服务器A(网络服务器+兔子)
服务器B(仅适用于工人的芹菜)
然后在两个设置中设置代理网址。像这样:
BROKER_URL = 'amqp://user:password@IP_SERVER_A:5672//'
在服务器B设置中将服务器A与服务器A的IP匹配。
目前,任何任务都必须发送到服务器A中的Rabbit到虚拟服务器/。
在服务器B中,您必须初始化芹菜工作者,如下所示:
python manage.py celery worker -Q queue_name -l info
就是这样。
Sintesis :Django向Rabbit发送消息以排队任务,然后芹菜工人请求一些消息来执行任务。
注意:不要求必须在服务器A中安装rabbitMQ,您可以在服务器C中安装Rabbit,并在两个设置中的BROKER_URL
中引用(A和B) )像这样:BROKER_URL='amqp://user:password@IP_SERVER_C:5672//'
。
抱歉我的英文。
问候。