Очередь заданий в node.js
Я ищу менеджера очереди заданий в node.js, который может быть вызван php. Это для веб-приложения, которое должно отправлять электронные письма, создавать PDF-файлы и т. Д., Которое я хотел бы выполнять асинхронно с процессом php.
Пример процесса:
- Пользователь запрашивает страницу php
- Php вызывает диспетчер очереди заданий и добавляет задачу
- Задача выполняется в node.js асинхронно с php, желательно, когда она немного тише
- Задача - выполнить скрипт php
Почему эта "сложная" система?
- Мы пишем все наши веб-приложения на php (Zend Framework)
- Мы хотели бы начать изучать node.js
- Нам нужен асинхронный процесс (быстрый ответ!)
- "Настоящей" задачей должен быть также скрипт php, чтобы использовать уже написанные классы php, иметь легкий доступ к соединениям с базой данных и быть максимально сухим, насколько это возможно.
Варианты использования этой системы:
- Пользователь сам регистрируется, система отправит приветственное письмо
- Пользователь выполняет заказ электронной коммерции, система отправит счет
В конце мы также хотели бы использовать node-cron для выполнения несистемных задач cron (очень специфично для приложения). Node-cron вызовет менеджер очередей заданий, который впоследствии запустит скрипт php.
Есть ли такое приложение уже в узле?
2 ответа
Одним из возможных вариантов является задание узла, которое использует Redis.
В таком случае я бы предпочел очередь сообщений, такую как RabbitMQ, и библиотеки на стороне клиента, такие как node-amqp и php-amqp. Затем просто отправьте свою работу из своего PHP-скрипта в очередь и позвольте nodejs забрать работу из очереди. Большим преимуществом является то, что он расширяемый и широко используется и тестируется на корпоративном рынке.