JS: Как управлять очередью почтовых запросов

#javascript #node.js #api #rest

Вопрос:

Я создал API, который позволяет вам отправлять запрос POST, который не возвращает клиенту немедленный результат и требует обработки. Я хотел бы разрешить клиенту отправлять несколько почтовых запросов, которые ставятся в очередь и обрабатываются по одному за раз. Не могли бы вы порекомендовать пакет, который может помочь мне в этой задаче? Можете ли вы привести мне пример:

  • как создать очередь
  • как добавить запрос на публикацию в очередь

Комментарии:

1. Что не так с Node.js встроенная очередь?

Ответ №1:

Если ваша задача тяжелая и требует использования Node.js рабочие потоки, взгляните на модули очередей заданий, такие как Bull, BullMQ, Bree и так далее.

Первые два требуют хранения в очереди Redis, последний — только оперативная память.

В противном случае вы могли бы использовать брокеров MQ, таких как Kafka или RabbitMQ, и работать с ними.

Таким образом, ваш POST запрос может поместить задание в очередь и выполнить, а ваш клиент может запросить результат на другой конечной точке с помощью уникального идентификатора (задания) или любых других параметров. Или получать уведомления через WebSocket. Это тебе решать.