РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpQuInr 99 of 201 menu
◀ ▶

Введение в очереди в Nest

Тяжёлый шаг после записи данных удлиняет ответ клиенту: браузер ждёт, пока письмо уйдёт или файл обработается, хотя подтверждение сохранения уже можно отдать сразу. Повтор того же шага с другого адреса снова встраивает его в метод страницы.

Такой шаг переносят в очередь: сервис кладёт описание работы в хранилище Redis, а отдельный обработчик забирает задачи, когда приложение готово. Клиент получает быстрый ответ, а длинная часть идёт в фоне внутри процесса NodeJS.

В Nest для BullMQ подключают пакет @nestjs/bullmq. Корневой модуль настраивает соединение с Redis, регистрирует именованные очереди, сервисы ставят задачи, а классы с обработчиком наследуют WorkerHost и выполняют полученную работу. Данные задачи лежат в Redis, поэтому после перезапуска необработанные записи можно продолжить.

Дальше разберём подключение к Redis на локальном порту, постановку задачи из сервиса, класс обработчика, полезную нагрузку, отложенный старт, повтор при сбое и строку в журнале по событию задачи.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить