diff --git a/internal/biz/timeslicequery/execute.go b/internal/biz/timeslicequery/execute.go index d0928ba..24838f8 100644 --- a/internal/biz/timeslicequery/execute.go +++ b/internal/biz/timeslicequery/execute.go @@ -46,6 +46,7 @@ func (v *Query) callbackFunc(ctx context.Context, req *timeslice.Task) error { n := 0 num := 0 notifyNum := 0 + errNum := 0 err := v.orderRepo.FinSucByStockIdInBatches(ctx, x, func(ctx context.Context, rows []*bo.OrderBo) error { @@ -54,13 +55,20 @@ func (v *Query) callbackFunc(ctx context.Context, req *timeslice.Task) error { num += 1 if err := v.wechatQuery(ctx, order, ¬ifyNum); err != nil { + + errNum += 1 + logFields := map[string]string{ "order_no": order.OrderNo, "coupon_id": order.VoucherNo, "open_id": order.Account, "err": err.Error(), } - log.Errorf("%s到%s,第%d个任务,第%d组,发生错误:+v", startTimeStr, endTimeStr, req.TaskID, n, logFields) + log.Errorf("%s到%s,第%d个任务,第%d组,发生错误:%+v", startTimeStr, endTimeStr, req.TaskID, n, logFields) + + if errNum > 20 { + return fmt.Errorf("%s到%s,第%d个任务,已经连续发生20次错误%+v", startTimeStr, endTimeStr, req.TaskID, logFields) + } } }