使用node.js创建Celery worker

时间:2014-01-19 00:49:05

标签: javascript node.js celery node-celery

使用node-celery,我们可以启用节点将Celery作业推送到任务队列。我们如何允许节点成为Celery工作者并使用队列?

2 个答案:

答案 0 :(得分:8)

对于Celery,如果终点是amqp。结帐Celery.js Github任何节点进程启动为amqp使用者都可以正常工作。对于其他每种self.conf.backend_type类型,您可以拥有不同的消费者。以下示例仅适用于amqp。

一个这样的例子。下面的message可能是Celery任务对象。

var amqp = require('amqp');
var connection = amqp.createConnection({ host: "localhost", port: 5672 });
connection.on('ready', function () {
  connection.queue("my_celery_queue", function(queue){
    queue.bind('#'); 
    queue.subscribe(function (message) {
      //eat your Celery work here
    })
  })
})

答案 1 :(得分:1)

这是Celery文档的一种方法,它公开了REST api:

http://docs.celeryproject.org/en/latest/faq.html#is-celery-multilingual

  

此外,还有另一种独立于语言的方式,那就是使用REST任务,它们不是URL的功能,而是功能。借助这些信息,您甚至可以创建简单的Web服务器来启用代码预加载。只需公开一个执行操作的端点,然后创建一个仅对该端点执行HTTP请求的任务即可。

一些例子:http://ask.github.io/celery/cookbook/remote-tasks.html