From f81ce64fddaef8362ee13d432f21e1f11847bc76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=8F=E7=8A=80=E9=BA=9F?= Date: Thu, 27 Aug 2026 10:50:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(recruitment):=20gcron=20=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E6=94=B9=206=20=E6=AE=B5=E5=BC=8F=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=AF=8F=E6=97=A5=E6=8A=93=E5=8F=96/=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E4=BB=BB=E5=8A=A1=E4=BB=8E=E6=9C=AA=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gcron 不支持 5 段标准 cron,'0 3 * * *'/'0 8 * * *' 注册时报 invalid pattern 被 ERRO 日志吞掉,导致线上每日 03:00 增量抓取与 08:00 招聘早报推送从未执行。 改为 '0 0 3 * * *' / '0 0 8 * * *'。 --- internal/service/recruitment/scheduler.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/service/recruitment/scheduler.go b/internal/service/recruitment/scheduler.go index f56632d..eba9fa3 100644 --- a/internal/service/recruitment/scheduler.go +++ b/internal/service/recruitment/scheduler.go @@ -9,8 +9,9 @@ import ( // StartScheduler 注册定时任务:每日 03:00 增量抓取全部启用源,08:00 推送招聘早报。 // 调度器随 service 进程常驻,不额外引入系统 crontab。 +// 注意:gcron 表达式为 6 段式(秒 分 时 日 月 周),5 段标准 cron 会注册失败。 func StartScheduler(ctx context.Context) { - if _, err := gcron.Add(ctx, "0 3 * * *", func(c 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) @@ -20,7 +21,7 @@ func StartScheduler(ctx context.Context) { }, "recruit-crawl-daily"); err != nil { g.Log().Errorf(ctx, "add recruit crawl cron failed: %v", err) } - if _, err := gcron.Add(ctx, "0 8 * * *", func(c context.Context) { + 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)