Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向RabbitMQ发送消息的远程Django应用程序_Django_Rabbitmq_Celery_Django Celery - Fatal编程技术网

向RabbitMQ发送消息的远程Django应用程序

向RabbitMQ发送消息的远程Django应用程序,django,rabbitmq,celery,django-celery,Django,Rabbitmq,Celery,Django Celery,我开始熟悉拉比的行话了,所以我会尽力解释。我将在几周后进行公开测试,这是我希望实现的设置。我希望Django成为制片人;向远程RabbitMQ盒和另一个芹菜盒生成消息,在RabbitMQ队列上侦听任务。所以总共有三个盒子。德扬戈,拉比和芹菜。到目前为止,通过芹菜文档,我已经成功地在另一台机器上运行了Django和芹菜以及Rabbit MQ。Django只是在视图中调用任务: add.delay(3, 3) 消息被发送到RabbitMQ。RabbitMQ将其发送回发送任务的机器(因为Django

我开始熟悉拉比的行话了,所以我会尽力解释。我将在几周后进行公开测试,这是我希望实现的设置。我希望Django成为制片人;向远程RabbitMQ盒和另一个芹菜盒生成消息,在RabbitMQ队列上侦听任务。所以总共有三个盒子。德扬戈,拉比和芹菜。到目前为止,通过芹菜文档,我已经成功地在另一台机器上运行了Django和芹菜以及Rabbit MQ。Django只是在视图中调用任务:

add.delay(3, 3)
消息被发送到RabbitMQ。RabbitMQ将其发送回发送任务的机器(因为Django和芹菜共享同一个框),芹菜处理任务

这对于开发目的来说是非常好的。然而,让Django和芹菜在同一个盒子上运行并不是一个好主意,因为两者都必须争夺内存和CPU。这里的全部目标是让客户端进入和退出HTTP请求周期,并让芹菜工人处理任务。但是,如果机器接受HTTP请求并同时处理任务,则速度会大大降低

所以我想知道有没有一种方法可以让这一切彼此分离。让Django发送任务,RabbitMQ转发任务,芹菜处理任务(生产者、经纪人、消费者)


我该怎么做呢?非常简单的例子会有帮助

您需要的是在第三台机器上部署应用程序的代码,并在那里仅执行处理任务的命令。您还需要在这台机器上安装代码。

那么,几乎复制我的Django框,只运行实际侦听正确的命令?我有一种感觉,那就是这样做的方式。