Очередь работы в node.js

Я ищу менеджера очереди заданий в node.js, который может быть вызван php. Это для веб-приложения, которое должно отправлять электронные письма, создавать pdf-файлы и т. Д., Для которых я хотел бы выполнить асинхронный процесс php.

Пример процесса:

  1. Пользователь запрашивает страницу php
  2. Php вызывает диспетчер очереди заданий и добавляет задание
  3. Задача выполняется в node.js асинхронно php, желательно, когда она немного более спокойная
  4. Задача – выполнить скрипт php

Почему эта «сложная» система?

  1. Мы пишем все наши веб-приложения в php (Zend Framework)
  2. Мы хотели бы начать изучение node.js
  3. Нам нужен асинхронный процесс (быстрый ответ!)
  4. «Реальная» задача также должна быть php-скриптом, использовать уже написанные PHP-классы, иметь легкий доступ к соединениям с базой данных и быть как можно более СУХОЙ

Используйте случаи этой системы:

  1. Пользователь регистрируется, система отправит приветственное письмо
  2. Пользователь выполнил заказ электронной торговли, система отправит счет-фактуру

В конце мы также хотели бы использовать node-cron для выполнения несистемных задач cron (особенно для приложений). Node-cron вызовет диспетчер очереди заданий, который впоследствии будет запускать скрипт php.

Есть ли такое приложение уже в узле?

Один из возможных вариантов – это задания узлов , в которых используется Redis.

В таком случае я предпочел бы такую ​​очередь сообщений, как RabbitMQ и библиотеки на стороне клиента, такие как node-amqp и php-amqp . Затем просто отправьте свою работу из своего PHP-скрипта в очередь и позвольте nodejs забрать задание из очереди. Большим преимуществом является то, что он является расширяемым и широко используется и протестирован на корпоративном рынке.