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

Обработчик задачи в Nest

Задачи уже попадают в Redis, но без класса, который их забирает, очередь только растёт. Nest не угадает, какой код должен сработать при появлении новой записи.

Класс помечают связью с именем очереди и наследуют WorkerHost из пакета @nestjs/bullmq. Метод process получает объект задачи и выполняет работу. Такой класс регистрируют в провайдерах модуля, иначе фреймворк не поднимет обработчик при старте.

Покажем на примере постов:

import { Processor, WorkerHost } from '@nestjs/bullmq'; import { Job } from 'bullmq'; @Processor('posts') export class PostProcessor extends WorkerHost { lastJobName = ''; async process(job: Job) { this.lastJobName = job.name; } }

Тот же класс указывают в провайдерах рядом с сервисом, который ставит задачи:

import { Module } from '@nestjs/common'; import { BullModule } from '@nestjs/bullmq'; import { PostProcessor } from './post.processor.js'; import { PostService } from './post.service.js'; @Module({ imports: [ BullModule.forRoot({ connection: { host: 'localhost', port: 6379, }, }), BullModule.registerQueue({ name: 'posts', }), ], providers: [PostService, PostProcessor], }) export class AppModule {}

Опишите WorkerProcessor, который сохраняет имя последней задачи в поле класса, и подключите его к корневому модулю.

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