53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
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
|
|
}
|