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

Журнал задачи в Nest

Сообщения из фонового метода легко теряются среди вывода консоли: нет метки класса, уровень не отделён от случайных отладочных строк других частей приложения. На сервере NodeJS такой поток сложнее фильтровать и читать по журналам.

В Nest для служебных записей используют Logger из @nestjs/common. Его создают на класс задачи и вызывают метод уровня log внутри срабатывания планировщика. Сообщение получает имя класса и попадает в общий формат журнала приложения, а не в сырой console.log.

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

import { Injectable, Logger } from '@nestjs/common'; import { Cron, CronExpression } from '@nestjs/schedule'; @Injectable() export class PostTasksService { private logger = new Logger(PostTasksService.name); @Cron(CronExpression.EVERY_MINUTE, { name: 'post-list-minute', }) handleCron() { this.logger.log('Post list minute'); } }

Подключение ScheduleModule.forRoot и регистрация провайдера не меняются:

import { Module } from '@nestjs/common'; import { ScheduleModule } from '@nestjs/schedule'; import { PostTasksService } from './post.tasks.service.js'; @Module({ imports: [ScheduleModule.forRoot()], providers: [PostTasksService], }) export class AppModule {}

Перенесите запись минутного шага списка работников в WorkerTasksService в журнал приложения с меткой имени класса вместо вывода в консоль.

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