Django芹菜任务在单独的服务器上

时间:2017-05-22 13:01:07

标签: django rabbitmq celery

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

1 个答案:

答案 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//'

抱歉我的英文。

问候。