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

Данные задачи в Nest

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

При постановке передают сериализуемый объект: BullMQ кладёт его в Redis вместе с именем задачи. В методе process те же поля доступны через job.data, форма объекта остаётся на усмотрение приложения.

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

import { Injectable } from '@nestjs/common'; import { InjectQueue } from '@nestjs/bullmq'; import { Queue } from 'bullmq'; @Injectable() export class PostService { postQueue: Queue; constructor(@InjectQueue('posts') postQueue: Queue) { this.postQueue = postQueue; } async notifyCreated(title: string) { await this.postQueue.add('post-created', { title }); } }

Обработчик читает заголовок из полезной нагрузки задачи:

import { Processor, WorkerHost } from '@nestjs/bullmq'; import { Job } from 'bullmq'; @Processor('posts') export class PostProcessor extends WorkerHost { lastTitle = ''; async process(job: Job<{ title: string }>) { this.lastTitle = job.data.title; } }

Поставьте из WorkerService задачу с данными работника, а WorkerProcessor сложит их в поля класса.

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