package service import ( "context" "fmt" "github.com/go-kratos/kratos/v2/log" "time" "voucher/internal/pkg/rdsmq" ) func (s *VoucherService) GetWechatConfig() *rdsmq.ConsumeConfig { queue := s.bc.RdsMQ.GetWechatRetry() if queue == nil { return nil } if !queue.GetIsOpen() { log.Warn(fmt.Sprintf("[%s]RdsMQ is not open", queue.Name)) return nil } return &rdsmq.ConsumeConfig{ Rdb: s.rdb.Rdb, QueueName: queue.Name, NumWorkers: queue.NumWorkers, WaitTime: queue.GetWaitTime().AsDuration(), RetryNum: queue.RetryNum, Fn: s.HandleWechat, Logger: s.logHelper, } } func (s *VoucherService) HandleWechat(ctx context.Context, batchNo string) error { if batchNo == "" { s.logHelper.Errorf("RdsMQ keySend error: batchNo is empty") return nil } start := time.Now() fmt.Printf("失败订单重试处理开始:%s,batchNo:%s", start.String(), batchNo) if err := s.VoucherBiz.WechatRetry(ctx, batchNo); err != nil { s.logHelper.Error(err) } log.Warnf("失败订单重试处理耗时:%s,batchNo:%s", time.Now().Sub(start).String(), batchNo) fmt.Printf("失败订单重试处理耗时:%s,batchNo:%s", time.Now().Sub(start).String(), batchNo) return nil }