(feat): graceful shutdown

This commit is contained in:
2026-02-12 18:33:56 +03:00
parent 6ea9905c25
commit c491996a5d
+25
View File
@@ -218,6 +218,23 @@ if (Environment.OPENAI_API_KEY) {
export const photoDir = path.join(Environment.DATA_PATH, "photo"); export const photoDir = path.join(Environment.DATA_PATH, "photo");
export const videoDir = path.join(Environment.DATA_PATH, "video"); export const videoDir = path.join(Environment.DATA_PATH, "video");
let isShuttingDown = false;
async function shutdown(signal: NodeJS.Signals) {
if (isShuttingDown) return;
isShuttingDown = true;
console.log(`Received ${signal}. Stopping bot polling...`);
try {
await bot.stopPolling();
} catch (error) {
logError(error);
} finally {
process.exit(0);
}
}
async function main() { async function main() {
const start = Date.now(); const start = Date.now();
@@ -286,4 +303,12 @@ bot.on("message", processNewMessage);
bot.on("inline_query", processInlineQuery); bot.on("inline_query", processInlineQuery);
bot.on("callback_query", processCallbackQuery); bot.on("callback_query", processCallbackQuery);
process.on("SIGTERM", () => {
shutdown("SIGTERM").catch(logError);
});
process.on("SIGINT", () => {
shutdown("SIGINT").catch(logError);
});
main().catch(logError); main().catch(logError);