- 统一清理调用CallMsgHandlerAsync时的primaryID设置
- defsch中,自动接单调用OnOrderStatusChanged改为异步,防止死循环
This commit is contained in:
@@ -143,7 +143,10 @@ func init() {
|
||||
// 为了解决京东新消息与接单消息乱序的问题
|
||||
if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 && errWithCode.IntCode() == -1 {
|
||||
if order2, err2 := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetOrder(order.VendorOrderID); err2 == nil && order2.Status > order.Status {
|
||||
// sch.OnOrderStatusChanged(order, model.Order2Status(order2), false)
|
||||
order.Status = order2.Status
|
||||
jxutils.CallMsgHandlerAsync(func() {
|
||||
sch.OnOrderStatusChanged(order, model.Order2Status(order2), false)
|
||||
}, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID))
|
||||
err = nil
|
||||
} else {
|
||||
err = err2
|
||||
@@ -574,7 +577,7 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf
|
||||
utils.AfterFuncWithRecover(duration, func() {
|
||||
jxutils.CallMsgHandlerAsync(func() {
|
||||
s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, retryCount-1, duration)
|
||||
}, order.VendorOrderID)
|
||||
}, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID))
|
||||
})
|
||||
} else {
|
||||
errStr := fmt.Sprintf("订单:%s转自配送失败, 错误信息:%v", order.VendorOrderID, err)
|
||||
@@ -685,7 +688,7 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, bill *model.Wa
|
||||
config.TimeoutAction(savedOrderInfo)
|
||||
savedOrderInfo.timerStatus = 0
|
||||
savedOrderInfo.timerStatusType = scheduler.TimerStatusTypeUnknown
|
||||
}, order.VendorOrderID)
|
||||
}, jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID))
|
||||
})
|
||||
}
|
||||
globals.SugarLogger.Debugf("resetTimer, orderID:%s, status:%d, timeout:%v", order.VendorOrderID, status, timeout)
|
||||
|
||||
Reference in New Issue
Block a user