feat: concurrent refresh in cron

This commit is contained in:
shinya
2025-08-24 17:32:47 +08:00
parent c6c9785bb7
commit d216904b76

View File

@@ -365,17 +365,24 @@ async function cronJob() {
async function refreshAllLiveChannels() {
const config = await getConfig();
for (const liveInfo of config.LiveConfig || []) {
if (liveInfo.disabled) {
continue;
}
try {
const nums = await refreshLiveChannels(liveInfo);
liveInfo.channelNumber = nums;
} catch (error) {
console.error('刷新直播源失败:', error);
}
}
// 并发刷新所有启用的直播源
const refreshPromises = (config.LiveConfig || [])
.filter(liveInfo => !liveInfo.disabled)
.map(async (liveInfo) => {
try {
const nums = await refreshLiveChannels(liveInfo);
liveInfo.channelNumber = nums;
} catch (error) {
console.error(`刷新直播源失败 [${liveInfo.name || liveInfo.key}]:`, error);
liveInfo.channelNumber = 0;
}
});
// 等待所有刷新任务完成
await Promise.all(refreshPromises);
// 保存配置
await db.saveAdminConfig(config);
}