修正資料庫未關閉問題

This commit is contained in:
2025-09-21 21:23:47 +08:00
parent 36e29c5a3f
commit 38ae30d611
11 changed files with 684 additions and 111 deletions

View File

@@ -5,6 +5,7 @@
import { db } from './database';
import { dbFailover } from './database-failover';
import { dbMonitor } from './database-monitor';
import { connectionMonitor } from './connection-monitor';
export class DatabaseShutdownManager {
private static instance: DatabaseShutdownManager;
@@ -57,6 +58,17 @@ export class DatabaseShutdownManager {
}
});
// 添加連線監控關閉處理器
this.addShutdownHandler('connection-monitor', async () => {
console.log('🔄 正在停止連線監控服務...');
try {
connectionMonitor.stopMonitoring();
console.log('✅ 連線監控服務已停止');
} catch (error) {
console.error('❌ 停止連線監控服務時發生錯誤:', error);
}
});
// 註冊系統信號處理器
this.registerSystemHandlers();
@@ -75,6 +87,21 @@ export class DatabaseShutdownManager {
});
}
// 初始化服務
public initialize(): void {
console.log('🚀 初始化資料庫服務...');
// 啟動連線監控
try {
connectionMonitor.startMonitoring(30000); // 30秒檢查一次
console.log('✅ 連線監控已啟動');
} catch (error) {
console.error('❌ 啟動連線監控失敗:', error);
}
console.log('✅ 資料庫服務初始化完成');
}
// 註冊系統信號處理器
private registerSystemHandlers() {
if (typeof process === 'undefined') return;