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

След задачи очереди в Nest

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

При установленных @nestjs/bullmq и bullmq агент Observe сам открывает след для задачи очереди. Если задачу ставят во время HTTP запроса, идентификатор следа передаётся в задачу, и в дашборде видна одна цепочка от запроса до обработчика.

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

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

Очередь и Observe остаются в корневом модуле; отдельный код следа в обработчике не требуется:

import { Module } from '@nestjs/common'; import { BullModule } from '@nestjs/bullmq'; import { ObserveModule } from './observe.js'; import { PostProcessor } from './post.processor.js'; @Module({ imports: [ ObserveModule.forRoot({ appKey: process.env.OBSERVE_APP_KEY!, appSecret: process.env.OBSERVE_APP_SECRET!, serviceId: 'posts-api', }), BullModule.forRoot({ connection: { host: 'localhost', port: 6379, }, }), BullModule.registerQueue({ name: 'posts', }), ], providers: [PostProcessor], }) export class AppModule {}

Подключите WorkerProcessor к очереди работников и выполните задачу, чтобы в Observe появился след обработки.

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