diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index 5db755921..4eeece867 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -95,8 +95,8 @@ func (s *DefScheduler) OnOrderStatusChanged(status *model.OrderStatus) (err erro globals.SugarLogger.Debugf("OnOrderStatusChanged, status:%v", status) savedOrderInfo := s.loadSavedOrderFromMap(status) s.updateOrderByStatus(savedOrderInfo.order, status) - if (status.Status > model.OrderStatusUnknown && status.Status < model.OrderStatusEndBegin) && status.Status != model.OrderStatusFinishedPickup { - if !(status.Status == model.OrderStatusFinishedPickup && len(savedOrderInfo.waybills) > 0) { //饿了么还观察到运单消息早于拣货完成消息 + if status.Status > model.OrderStatusUnknown && status.Status < model.OrderStatusEndBegin { + if !(status.Status == model.OrderStatusFinishedPickup && len(savedOrderInfo.waybills) > 0) && status.Status != model.OrderStatusFinishedPickup { //饿了么还观察到运单消息早于拣货完成消息 gap := 0 * time.Second beginTime := status.StatusTime if status.Status == model.OrderStatusNew { @@ -110,6 +110,8 @@ func (s *DefScheduler) OnOrderStatusChanged(status *model.OrderStatus) (err erro gap = time2Schedule3rdCarrierGap4OrderStatus } s.resetTimer(savedOrderInfo, status.Status, beginTime, gap) + } else { + s.stopTimer(savedOrderInfo) } } else { s.stopTimer(savedOrderInfo) diff --git a/business/scheduler/scheduler.go b/business/scheduler/scheduler.go index d5ceb78d8..b1596d134 100644 --- a/business/scheduler/scheduler.go +++ b/business/scheduler/scheduler.go @@ -23,7 +23,7 @@ var ( ) type StatusActionConfig struct { - Timeout time.Duration // 超时时间,为0的话表示立即执行 + Timeout time.Duration // 超时时间,为0的话表示禁用 TimeoutAction func(order *model.GoodsOrder) (err error) // 超时后需要执行的动作,为nil表示此状态不需要执行监控 }