Используя node-celery, мы можем включить node, чтобы направить задания Celery в очередь задач. Как мы можем позволить node быть работником сельдерея и потреблять очередь?
Создание работника сельдерея с помощью node.js
Ответ 1
Для сельдерея, если конечная точка является amqp. Оформить заказ Celery.js Github любой процесс node начался с того, что потребитель 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
})
})
})
Ответ 2
Вот подход из документа Celery, показывающий REST API:
http://docs.celeryproject.org/en/latest/faq.html#is-celery-multilingual
Кроме того, есть еще один способ быть независимым от языка и использовать REST-задачи, вместо того, чтобы ваши задачи были функциями, это URL-адреса. С помощью этой информации вы даже можете создавать простые веб-серверы, которые обеспечивают предварительную загрузку кода. Просто предоставьте конечную точку, которая выполняет операцию, и создайте задачу, которая просто выполняет HTTP-запрос к этой конечной точке.
пример: http://ask.github.io/celery/cookbook/remote-tasks.html