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

Завершение приложения в Nest

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

Последний шаг остановки ловит метод onApplicationShutdown. Интерфейс OnApplicationShutdown задаёт его на сервисе. Метод выполняется, когда обработка остановки включена в точке входа, до прослушивания порта, вызовом enableShutdownHooks.

Покажем на примере постов. Сервис выведет строку в терминал в конце остановки:

import { Injectable, OnApplicationShutdown } from '@nestjs/common'; @Injectable() export class PostService implements OnApplicationShutdown { onApplicationShutdown() { console.log('Application stopped'); } }

Сервис запишем в модуль постов:

import { Module } from '@nestjs/common'; import { PostService } from './post.service.js'; @Module({ providers: [PostService], }) export class PostsModule {}

Корневой модуль подключает модуль постов:

import { Module } from '@nestjs/common'; import { PostsModule } from './posts/posts.module.js'; @Module({ imports: [PostsModule], }) export class AppModule {}

В точке входа включим обработку остановки:

import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module.js'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.enableShutdownHooks(); await app.listen(process.env.PORT ?? 3000); } await bootstrap();

Включите обработку остановки и сделайте в сервисе WorkerService метод, который выполняется при завершении приложения. Модуль работников подключите к корневому.

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