重构定时任务初始化逻辑

- 将 InitCronJobs 函数重命名为 Init,并优化定时任务的执行时间,OpenRouter价格获取任务调整为每4小时执行一次。
- 简化了定时任务的注册过程,提升了代码可读性和维护性。
This commit is contained in:
wood chen 2025-03-26 14:35:54 +08:00
parent 50866158c6
commit 7a656bbeae
2 changed files with 9 additions and 21 deletions

View File

@ -12,47 +12,35 @@ import (
var cronScheduler *cron.Cron var cronScheduler *cron.Cron
// InitCronJobs 初始化并启动所有定时任务 // Init 初始化并启动所有定时任务
func InitCronJobs() { func Init() {
log.Println("初始化定时任务...") log.Println("初始化定时任务...")
// 创建一个新的cron调度器使用秒级精度 // 创建一个新的cron调度器使用秒级精度
cronScheduler = cron.New(cron.WithSeconds()) cronScheduler = cron.New(cron.WithSeconds())
// 注册OpenRouter价格获取任务 // 注册价格获取任务
// 每24小时执行一次 // 每4小时执行一次
_, err := cronScheduler.AddFunc("4 6 * * *", func() { _, err := cronScheduler.AddFunc("0 */4 * * *", func() {
if err := openrouter_api.FetchAndSavePrices(); err != nil { if err := openrouter_api.FetchAndSavePrices(); err != nil {
log.Printf("OpenRouter价格获取任务执行失败: %v", err) log.Printf("OpenRouter价格获取任务执行失败: %v", err)
} }
})
if err != nil { time.Sleep(3 * time.Second)
log.Printf("注册OpenRouter价格获取任务失败: %v", err)
}
// 注册其他厂商价格更新任务
// 每24小时执行一次错开时间避免同时执行
_, err = cronScheduler.AddFunc("30 6 * * *", func() {
if err := openrouter_api.UpdateOtherPrices(); err != nil { if err := openrouter_api.UpdateOtherPrices(); err != nil {
log.Printf("其他厂商价格更新任务执行失败: %v", err) log.Printf("其他厂商价格更新任务执行失败: %v", err)
} }
})
if err != nil { time.Sleep(3 * time.Second)
log.Printf("注册其他厂商价格更新任务失败: %v", err)
}
// 注册SiliconFlow价格更新任务
// 每24小时执行一次错开时间避免同时执行
_, err = cronScheduler.AddFunc("0 7 * * *", func() {
if err := siliconflow_api.UpdateSiliconFlowPrices(); err != nil { if err := siliconflow_api.UpdateSiliconFlowPrices(); err != nil {
log.Printf("SiliconFlow价格更新任务执行失败: %v", err) log.Printf("SiliconFlow价格更新任务执行失败: %v", err)
} }
}) })
if err != nil { if err != nil {
log.Printf("注册SiliconFlow价格更新任务失败: %v", err) log.Printf("注册价格更新定时任务失败: %v", err)
} }
// 启动定时任务 // 启动定时任务

View File

@ -36,7 +36,7 @@ func main() {
} }
// 初始化并启动定时任务 // 初始化并启动定时任务
cron.InitCronJobs() cron.Init()
defer cron.StopCronJobs() defer cron.StopCronJobs()
r := gin.Default() r := gin.Default()