package tasks import ( "app/commons/config" "app/commons/core" "app/tasks/daily_profit" "app/tasks/quota" "github.com/robfig/cron/v3" ) var cronIsRunning = false func beginCron() bool { if cronIsRunning { return false } cronIsRunning = true return cronIsRunning } func endCron() { cronIsRunning = false } func RunDailyCron() { crontab := cron.New(cron.WithSeconds()) // 秒级定时任务 dailyJobRule := "11 11 0 * * *" dailyJobCId, err := crontab.AddFunc(dailyJobRule, DailyTask) if err != nil { core.JobLog.Errorf("DailyTask:%s", err.Error()) return } core.JobLog.Infof("DailyTask:%s DailyTask 启动成功cId:%d", dailyJobRule, dailyJobCId) // todo: 唤起k8s 健康检查http服务 crontab.Run() } // 限制每日任务不可多任务同时进行 func DailyTask() { if !beginCron() { core.JobLog.Infof("corn is running...") return } defer endCron() var err error // 指标处理 err = quota.NewService().RunQuotaHandler() if err != nil { return } isTest := config.AppConf().Mod != config.ModEnvProd // 收益任务 // false 当日任务 -- 用于正式 // true 下一日任务 -- 用于手动测试 err = daily_profit.NewService().RunDailyProfitJob(isTest) if err != nil { return } }