Очередь заданий в 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.

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

2 ответа

Решение

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

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

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