fix: 优化pricing服务关停逻辑,确保定时器在清理阶段正确释放

This commit is contained in:
shaw
2025-10-16 15:35:40 +08:00
parent 83f7353284
commit f6eb077d82

View File

@@ -25,6 +25,7 @@ class PricingService {
this.fileWatcher = null // 文件监听器 this.fileWatcher = null // 文件监听器
this.reloadDebounceTimer = null // 防抖定时器 this.reloadDebounceTimer = null // 防抖定时器
this.hashCheckTimer = null // 哈希轮询定时器 this.hashCheckTimer = null // 哈希轮询定时器
this.updateTimer = null // 定时更新任务句柄
this.hashSyncInProgress = false // 哈希同步状态 this.hashSyncInProgress = false // 哈希同步状态
// 硬编码的 1 小时缓存价格(美元/百万 token // 硬编码的 1 小时缓存价格(美元/百万 token
@@ -91,7 +92,10 @@ class PricingService {
await this.syncWithRemoteHash() await this.syncWithRemoteHash()
// 设置定时更新 // 设置定时更新
setInterval(() => { if (this.updateTimer) {
clearInterval(this.updateTimer)
}
this.updateTimer = setInterval(() => {
this.checkAndUpdatePricing() this.checkAndUpdatePricing()
}, this.updateInterval) }, this.updateInterval)
@@ -776,6 +780,11 @@ class PricingService {
// 清理资源 // 清理资源
cleanup() { cleanup() {
if (this.updateTimer) {
clearInterval(this.updateTimer)
this.updateTimer = null
logger.debug('💰 Pricing update timer cleared')
}
if (this.fileWatcher) { if (this.fileWatcher) {
this.fileWatcher.close() this.fileWatcher.close()
this.fileWatcher = null this.fileWatcher = null
@@ -785,6 +794,11 @@ class PricingService {
clearTimeout(this.reloadDebounceTimer) clearTimeout(this.reloadDebounceTimer)
this.reloadDebounceTimer = null this.reloadDebounceTimer = null
} }
if (this.hashCheckTimer) {
clearInterval(this.hashCheckTimer)
this.hashCheckTimer = null
logger.debug('💰 Hash check timer cleared')
}
} }
} }