49 lines
935 B
Go
49 lines
935 B
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
"github.com/go-kratos/kratos/v2/log"
|
|
"time"
|
|
)
|
|
|
|
func (s *VoucherService) CronNotice(ctx context.Context) error {
|
|
|
|
c, ok := s.bc.Cron.CommandMap["orderNotice"]
|
|
|
|
if !ok {
|
|
log.Warn("orderNotice定时任务未找到")
|
|
return nil
|
|
}
|
|
|
|
if !c.IsOpen {
|
|
log.Warn("orderNotice定时任务未开启")
|
|
return nil
|
|
}
|
|
|
|
if len(c.Command) == 0 {
|
|
log.Error("orderNotice定时任务 command is empty")
|
|
return nil
|
|
}
|
|
|
|
return s.cron.AddFunc(c.Command, func() {
|
|
|
|
s.Notice(ctx)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
func (s *VoucherService) Notice(ctx context.Context) {
|
|
start := time.Now()
|
|
|
|
if err := s.VoucherBiz.Notice(ctx); err != nil {
|
|
log.Error("订单定时通知,执行失败,err: %v", err)
|
|
}
|
|
|
|
end := time.Now()
|
|
elapsed := end.Sub(start)
|
|
log.Warnf("订单定时通知,开始执行时间%s,执行结束时间%s,代码块执行耗时: %s", start.Format(time.DateTime), end.Format(time.DateTime), elapsed)
|
|
|
|
return
|
|
}
|