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

Задача по интервалу в Nest

Фоновая проверка списка должна идти каждые несколько секунд, пока сервер запущен, но отдельного запроса для неё нет. Вынести цикл в скрипт вне Nest неудобно: классы приложения и внедрение там недоступны.

Пакет @nestjs/schedule подключают в корневом модуле через ScheduleModule.forRoot. Метод провайдера помечают @Interval с длительностью в миллисекундах. После полной загрузки приложения планировщик сам начнёт вызывать этот метод снова и снова.

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

import { Injectable } from '@nestjs/common'; import { Interval } from '@nestjs/schedule'; @Injectable() export class PostTasksService { @Interval(5000) handleInterval() { console.log('Post list tick'); } }

Класс записывают в провайдеры, модуль планировщика добавляют в импорты:

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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить