package recruitment import ( "context" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gcron" ) // StartScheduler 注册定时任务:每日 03:00 增量抓取全部启用源,08:00 推送招聘早报。 // 调度器随 service 进程常驻,不额外引入系统 crontab。 // 注意:gcron 表达式为 6 段式(秒 分 时 日 月 周),5 段标准 cron 会注册失败。 func StartScheduler(ctx context.Context) { if _, err := gcron.Add(ctx, "0 0 3 * * *", func(c context.Context) { _, summary, e := Recruitment().Trigger(c, 0, false) if e != nil { g.Log().Errorf(c, "recruit daily crawl failed: %v", e) } else { g.Log().Infof(c, "recruit daily crawl done: %s", summary) } }, "recruit-crawl-daily"); err != nil { g.Log().Errorf(ctx, "add recruit crawl cron failed: %v", err) } if _, err := gcron.Add(ctx, "0 0 8 * * *", func(c context.Context) { sendDailyDigest(c) }, "recruit-push-daily"); err != nil { g.Log().Errorf(ctx, "add recruit push cron failed: %v", err) } }