Руководство
Грамотное завершение

Грамотное завершение

Грамотное завершение или выключение — это функция, которая при получении сигнала о завершении программы завершает свою последнюю задачу до полной остановки. Это позволяет гарантировать полное отключение клиента и сохранение всех сессий и кэша в базе данных. . Поэтому необходимо установить функцию shutdown.

import { shutdown } from 'tgsnake';
 
shutdown(client);

С помощью этой функции вы можете установить более 1 клиента.

shutdown(client1, client2, client3);

В v2 эта функция интегрирована непосредственно в класс Snake и ее нельзя отключить, что приведет к значительному расходу ресурсов (утечка памяти), поскольку у каждого клиента есть собственный обработчик событий для сигналов SIGTERM и SIGINT.

tgsnake.config.js
{
  experimental: {
    shutdown: false; // Чтобы отключить встроенный обработчик событий
  }
}

Если вы не установите эту функцию для клиента, могут произойти следующие проблемы:

  • Кэш не будет обновляться в базе данных сессии, которую вы используете, например, если вы используете @tgsnake/redis-session.
  • Сеанс вашей авторизации может не быть сохранен в базе данных сессии, которую вы используете, например, если вы используете @tgsnake/redis-session.
  • Соединение с сервером Telegram не будет полностью закрыто. Это может привести к блокировке вашего аккаунта Telegram.

Вы можете создать собственную функцию завершения, добавив обработчик событий для сигналов SIGTERM или SIGINT, а затем вызвать функцию stop в клиенте.