Подтвердить что ты не робот

Эквивалент сельдерея в Node JS

Пожалуйста, предложите эквивалент Celery в Node JS для запуска асинхронных задач. Мне удалось найти следующее:

Я запускал как ручные, так и автоматические потоки в фоновом режиме и взаимодействовал с MongoDB.

node -celery использует redis DB, а не Mongo DB. Есть ли способ изменить это? Когда я установил node -celery redis был установлен как зависимость.

Я новичок в сельдерее, пожалуйста, помогите. Спасибо.

4b9b3361

Ответ 1

Сельдерей в основном является клиентом RabbitMQ. Есть производители (задачи), потребители (работники) и брокером сообщений AMQP, который доставляет сообщения между задачами и работниками.

Зная, что вы сможете написать свой собственный сельдерей в node.js.

введите описание изображения здесь

node -celery - это библиотека, которая позволяет вашему процессу node работать как клиенту сельдерея (продюсер/издатель), так и работник сельдерея (потребитель).

См. https://abhishek-tiwari.com/post/amqp-rabbitmq-and-celery-a-visual-guide-for-dummies

Ответ 2

Перейдите для Kue, это цельное решение, которое напоминает Celery в слове Python; в нем есть понятия: производители/потребители, отложенные задачи, повторное задание задачи, задача TTL, возможность циклических задач для нескольких потребителей, прослушивающих одну и ту же очередь, и т.д.

Вероятно, сельдерей более продвинут с большим количеством функций с большим количеством брокеров для поддержки, и вы можете использовать node -celery, если хотите, но, на мой взгляд, я думаю, что не нужно идти на гибридное решение, требующее установки python и node, когда вы можете использовать только язык, достаточный в 90% случаев (если не обязательно, конечно).

----------------------------------------

Edit-1/2018

Моя рекомендация - не использовать Kue сейчас, поскольку это, кажется, заторможенный проект, вместо этого используйте Celery. Он очень хорошо поддерживается и поддерживается сообществом и поддерживает большое количество случаев использования.

Ответ 3

Пойдите для Kue, это целое решение, которое напоминает Сельдерей в слове Python; в нем есть понятия: производители/потребители, отложенные задачи, повторное задание задачи, задача TTL, возможность циклических задач для нескольких потребителей, прослушивающих одну и ту же очередь, и т.д.

Kue, после того, как прошло много времени, все еще имеет те же самые старые основные проблемы:

  • github.com/Automattic/kue/issues/514
  • github.com/Automattic/kue/issues/130
  • github.com/Automattic/kue/issues/53

Если кто-то, читающий это, не хочет переписывать Kue, не начинайте с него. Это хорошо для простых задач. Но если вы хотите иметь дело со многими из них, параллельными или целями задач (когда одна задача создает другую) - перестать тратить ваше время.

Я потратил впустую месяц, пытаясь отладить Куэ и до сих пор не добился успеха. Лучшим выбором было изменение Kue для очереди Pubs/sub Messaging на RabbitMQ и Rabbot (еще один завершение RabbitMQ).

Лично я не использовал Сельдерей так много, чтобы положить все на это, но поскольку я искал альтернативу сельдерей и нашел, как кто-то советует, чтобы Кю просто кипятил мою кровь в жилах.

Если вы хотите отправить задержанное письмо (как в примере Kue), вы можете пойти на все, что захотите, не беспокоясь об ошибках, Но если вам нужна надежная системная задача/очередь сообщений, даже не начинайте с Kue. Я лично пошел с 5. node -celery (node сельдерей)

Ответ 4

По нашему опыту, Kue был ненадежным, потеряв работу. Конечно, мы использовали более старую версию, с которой она, вероятно, была исправлена. Это было также в период, когда TJ отказался от проекта, и новые сопровождающие не были выбраны. Мы перешли на beanstalkd и были очень счастливы. Мы используем https://github.com/ceejbot/fivebeans в качестве интерфейса node для beanstalkd.