Каков наилучший способ запуска метода Component (Service) сразу после запуска начальной загрузки?
Я использую экземпляр NestJS в качестве микросервиса (без HTTP).
Мне нужно запустить метод Компонента, который представляет собой бесконечный цикл с некоторой бизнес-логикой, сразу после начальной загрузки.
Каков наилучший способ сделать это?
SRC /main.ts
import {NestFactory} from '@nestjs/core';
import {ApplicationModule} from './app.module';
import {Transport} from '@nestjs/microservices';
async function bootstrap() {
const app = await NestFactory.create(ApplicationModule);
app.connectMicroservice({
transport: Transport.REDIS,
url: 'redis://:redis_pass@localhost:6379',
});
await app.startAllMicroservicesAsync();
// Probably here I must run startLoop method from app.service.ts
}
bootstrap();
SRC /app.service.ts
import { Component } from '@nestjs/common';
@Component()
export class AppService {
startLoop() {
let timerId = setTimeout(function loop() {
console.log('Loop process');
// Some bussines logic here
timerId = setTimeout(loop, 1000);
}, 1000);
}
}
1 ответ
Решение
Я бы сказал, что вы должны реализовать OnModuleInit
Интерфейс, узнайте больше о хуках жизненного цикла здесь.