TypeError: тело не является итерируемым - RabbitMQ, рабочий NodeJs Celery,

У меня есть система, которая пишет в RabbitMQ, используя Pika (python). Содержимое представляет собой объект JSON, который включает URL-адрес файла CSV, который требует обработки в фоновом режиме. В другом случае у меня есть клиент NodeJs, который прослушивает очередь и создает задачи, которые в конечном итоге будут обрабатывать ее на месте или вызывать другую программу NodeJs с URL-адресом в качестве параметра.
Для этого я использую эту celery.node библиотеку. Проблема с рабочей стороной, я могу публиковать и прослушивать очередь, но при создании задач продолжает отображаться TypeError: body is not iterable.

Это мой рабочий код:

const celery = require('celery-node');

const rabbitmq_broker = `amqp://${RABBITMQ_USER}:${RABBITMQ_PASS}@${RABBITMQ_HOST}:${RABBITMQ_PORT}`;

const worker = celery.createWorker(
    rabbitmq_broker,
    rabbitmq_broker,
    'some_queue'
);

worker.register("tasks.some-task", (data) => {
    console.log('data:', data);
    return data;
});

worker.start()

Я открыл вопрос в этом репозитории github, однако не получил никаких отзывов. Любая помощь приветствуется, спасибо!


person Ardian    schedule 06.11.2020    source источник


Ответы (1)


Решено: проблема была вызвана тем, что я слушал some_queue вместо основного брокера RabbiMQ, где клиент публиковал задачи Celery. Его удаление решило проблему.

person Ardian    schedule 11.11.2020