#javascript #node.js #api #rest
Вопрос:
Я создал API, который позволяет вам отправлять запрос POST, который не возвращает клиенту немедленный результат и требует обработки. Я хотел бы разрешить клиенту отправлять несколько почтовых запросов, которые ставятся в очередь и обрабатываются по одному за раз. Не могли бы вы порекомендовать пакет, который может помочь мне в этой задаче? Можете ли вы привести мне пример:
- как создать очередь
- как добавить запрос на публикацию в очередь
Комментарии:
1. Что не так с Node.js встроенная очередь?
Ответ №1:
Если ваша задача тяжелая и требует использования Node.js рабочие потоки, взгляните на модули очередей заданий, такие как Bull, BullMQ, Bree и так далее.
Первые два требуют хранения в очереди Redis, последний — только оперативная память.
В противном случае вы могли бы использовать брокеров MQ, таких как Kafka или RabbitMQ, и работать с ними.
Таким образом, ваш POST
запрос может поместить задание в очередь и выполнить, а ваш клиент может запросить результат на другой конечной точке с помощью уникального идентификатора (задания) или любых других параметров. Или получать уведомления через WebSocket. Это тебе решать.