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

Задача по расписанию в Nest

Интервал подходит для частых коротких шагов, но сверка с полночью или ровная минута на часах требуют другого подхода. Считать время вручную внутри метода легко сбить при смене нагрузки или паузе процесса.

Для календарного расписания метод помечают @Cron. В декоратор передают строку в формате cron или готовую константу из CronExpression. Константа раз в минуту срабатывает реже, чем посекундный интервал, и удобна для регулярной сверки списка без лишней нагрузки.

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

import { Injectable } from '@nestjs/common'; import { Cron, CronExpression } from '@nestjs/schedule'; @Injectable() export class PostTasksService { @Cron(CronExpression.EVERY_MINUTE) handleCron() { console.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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить