使用node-celery,我们可以启用 node 将 Celery 作业推送到任务队列。我们如何让节点成为 Celery worker 并消费队列?
问问题
6326 次
2 回答
8
对于 Celery,如果终点是 amqp。Checkout 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
})
})
})
于 2014-09-08T20:16:30.960 回答
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
于 2019-01-15T16:34:56.237 回答