Node.js 芹菜(Django)和#x2B;RabbitMQ+;nodejs服务器交换数据
我有一个Node.js 芹菜(Django)和#x2B;RabbitMQ+;nodejs服务器交换数据,node.js,django,rabbitmq,celery,Node.js,Django,Rabbitmq,Celery,我有一个Django项目,使用芹菜和RabbitMQ经纪人。现在我想从NodeJSserver调用django(芹菜)任务 在我的NodeJS中,我正在使用amqplib。这是允许我将任务发送到RabbitMQ: amqp.connect('amqp://localhost', function(err, conn) { conn.createChannel(function(err, ch) { var q = 'celery'; ch.assertQueue(q, {d
Django
项目,使用芹菜和RabbitMQ
经纪人。现在我想从NodeJS
server调用django(芹菜)任务
在我的NodeJS
中,我正在使用amqplib
。这是允许我将任务发送到RabbitMQ
:
amqp.connect('amqp://localhost', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'celery';
ch.assertQueue(q, {durable: true});
ch.sendToQueue(q, new Buffer('What should I write here?'));
});
});
我的问题是芹菜用什么格式?我应该向缓冲区写入什么来调用芹菜工人
例如,在我的芹菜路径
(django设置)中,我有blabla.tasks.add
:
CELERY_ROUTES = {
...
'blabla.tasks.add': 'high-priority',
}
如何调用此blabla.tasks.add
函数
我尝试了很多方法,但芹菜工人给了我错误:收到并删除了未知消息。目的地错了代码>我在这里找到了解决方案
示例消息格式为:
{
“id”:“4cc7438e-afd4-4f8f-a2f3-f46567e7ca77”,
“任务”:“芹菜。任务。任务”,
“args”:[],
“kwargs”:{},
“重试次数”:0,
“预计到达时间”:“2009-11-17T12:30:56.527191”
}
所以代码应该是:
amqp.connect('amqp://localhost', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'celery';
ch.assertQueue(q, {durable: true});
ch.sendToQueue(q, new Buffer('{"id": "this-is-soo-unique-id", "task": "blabla.tasks.add", "args": [1, 2], "kwargs": {}, "retries": 0}'), {
contentType: 'application/json',
contentEncoding: 'utf-8',
});
});
});