package crontask import ( "context" "wechat-api/internal/svc" "github.com/robfig/cron/v3" "github.com/zeromicro/go-zero/core/logx" ) type CronTask struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewCronTask(ctx context.Context, svcCtx *svc.ServiceContext) *CronTask { return &CronTask{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func ScheduleRun(c *cron.Cron, serverCtx *svc.ServiceContext) { l := NewCronTask(context.Background(), serverCtx) c.AddFunc("* * * * *", func() { l.sendMsg() }) sendWx := NewCronTask(context.Background(), serverCtx) c.AddFunc("* * * * *", func() { sendWx.sendWx() }) sendWxOnTimeout := NewCronTask(context.Background(), serverCtx) c.AddFunc("* * * * *", func() { sendWxOnTimeout.sendWxOnTimeout() }) computeStatistic := NewCronTask(context.Background(), serverCtx) c.AddFunc("0 * * * *", func() { computeStatistic.computeStatistic() }) }