Создание работника Celery с использованием node.js

Используя node-celery, мы можем разрешить узлу отправлять задания Celery в очередь задач. Как мы можем позволить узлу быть работником Celery и потреблять очередь?

1 ответ

Для сельдерея, если конечной точкой является amqp. Оформление заказа Celery.js Github любой узел, запущенный как потребитель amqp, будет работать нормально. Для всех остальных self.conf.backend_type Типы вы можете иметь различного потребителя. Следующий пример только для amqp.

Один такой пример. message ниже может быть объект задачи сельдерея.

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
    })
  })
})

Вот подход из документа Celery, показывающий REST API:

http://docs.celeryproject.org/en/latest/faq.html

Кроме того, есть еще один способ быть независимым от языка, и это использовать задачи REST, вместо того, чтобы ваши задачи были функциями, это URL-адреса. С помощью этой информации вы даже можете создавать простые веб-серверы, которые обеспечивают предварительную загрузку кода. Просто предоставьте конечную точку, которая выполняет операцию, и создайте задачу, которая просто выполняет HTTP-запрос к этой конечной точке.

пример: http://ask.github.io/celery/cookbook/remote-tasks.html

Другие вопросы по тегам