From b2fe83150403d75b2196713b4a8c47e735281bed Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 19 Jul 2018 15:01:07 +0800 Subject: [PATCH] - debug info added for shceduler. --- business/scheduler/defsch/defsch.go | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index a83d52543..3b80a8037 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -69,12 +69,13 @@ func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder) (err error) { watchInfo := &WatchOrderInfo{ order: order, } - s.resetTimer(model.OrderStatusNew, watchInfo, 0) s.orderMap.Store(jxutils.ComposeUniversalOrderID(order.VendorOrderID, order.VendorID), watchInfo) + s.resetTimer(model.OrderStatusNew, watchInfo, 0) return err } func (s *DefScheduler) OnOrderStatusChanged(status *model.OrderStatus) (err error) { + globals.SugarLogger.Debugf("OnOrderStatusChanged, status:%v", status) savedOrderInfo := s.loadWatchOrderFromMap(status.VendorOrderID, status.VendorID) if status.Status > model.OrderStatusUnknown && status.Status < model.OrderStatusEndBegin { s.updateOrderByStatus(savedOrderInfo.order, status) @@ -94,11 +95,12 @@ func (s *DefScheduler) OnOrderStatusChanged(status *model.OrderStatus) (err erro // 以下是运单 func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) { + globals.SugarLogger.Debugf("OnWaybillStatusChanged, bill:%v", bill) savedOrderInfo := s.loadWatchOrderFromMap(bill.VendorOrderID, bill.OrderVendorID) if bill.Status == model.WaybillStatusNew { if savedOrderInfo.order.WaybillVendorID == model.VendorIDUnknown { s.resetTimer(model.OrderStatusFinishedPickup, savedOrderInfo, 0) - err = s.addWaybill2Map(bill) + err = s.addWaybill2Map(savedOrderInfo, bill) } else { globals.SugarLogger.Infof("OnWaybillStatusChanged multiple waybill created, bill:%v", bill) if bill.WaybillVendorID != bill.OrderVendorID { @@ -117,7 +119,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) { switch bill.Status { case model.WaybillStatusAccepted: s.stopTimer(savedOrderInfo) // todo 这里应该另外启动一个TIMER - s.cancelOtherWaybills(bill) + s.cancelOtherWaybills(savedOrderInfo, bill) s.CurOrderManager.UpdateWaybillVendorID(bill) savedOrderInfo.order.WaybillVendorID = bill.WaybillVendorID @@ -129,7 +131,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) { savedOrderInfo.order.WaybillVendorID = bill.WaybillVendorID } case model.WaybillStatusCanceled, model.WaybillStatusFailed: - s.removeWaybillFromMap(bill, savedOrderInfo) + s.removeWaybillFromMap(savedOrderInfo, bill) if savedOrderInfo.order.WaybillVendorID == bill.WaybillVendorID { s.createWaybillOn3rdProviders(savedOrderInfo.order, nil) @@ -145,7 +147,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) { if savedOrderInfo.order.VendorID != bill.WaybillVendorID { s.GetPurchasePlatformFromVendorID(bill.OrderVendorID).SelfDeliverDelievered(savedOrderInfo.order) } - s.removeWaybillFromMap(bill, savedOrderInfo) + s.removeWaybillFromMap(savedOrderInfo, bill) } } else { globals.SugarLogger.Infof("OnWaybillStatusChanged can not find bill:%v in saved info", bill) @@ -154,8 +156,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) { return nil } -func (s *DefScheduler) addWaybill2Map(bill *model.Waybill) (err error) { - savedOrderInfo := s.loadWatchOrderFromMap(bill.VendorOrderID, bill.OrderVendorID) +func (s *DefScheduler) addWaybill2Map(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) { for _, v := range savedOrderInfo.waybills { if v.VendorWaybillID == bill.VendorWaybillID && v.WaybillVendorID == bill.WaybillVendorID { // 如果已经存在,不做处理 @@ -182,8 +183,7 @@ func (s *DefScheduler) createWaybillOn3rdProviders(order *model.GoodsOrder, excl return scheduler.ErrCanNotCreateAtLeastOneWaybill } -func (s *DefScheduler) cancelOtherWaybills(bill *model.Waybill) (err error) { - savedOrderInfo := s.loadWatchOrderFromMap(bill.VendorOrderID, bill.OrderVendorID) +func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) { for _, v := range savedOrderInfo.waybills { if v.WaybillVendorID != bill.OrderVendorID && !(v.WaybillVendorID == bill.WaybillVendorID && v.VendorWaybillID == bill.VendorWaybillID) { _ = s.GetDeliveryPlatformFromVendorID(v.WaybillVendorID).CancelWaybill(v) @@ -199,7 +199,7 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(bill *model.Waybill, retryCou utils.CallFuncRetryAsync(func(index int) error { err := s.GetPurchasePlatformFromVendorID(bill.OrderVendorID).Swtich2SelfDeliver(bill.VendorOrderID) if err == nil { - s.removeWaybillFromMap(bill, nil) // todo 是否在这里删除运单,还是在运单事件里处理更好些? + s.removeWaybillFromMap(nil, bill) // todo 是否在这里删除运单,还是在运单事件里处理更好些? } else if index == 0 { // 如果购买平台转商家自送失败,最终还是要取消3方物流 s.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID).CancelWaybill(bill) @@ -227,7 +227,7 @@ func (s *DefScheduler) loadWatchOrderFromMap(vendorOrderID string, vendorID int) return realSavedInfo } -func (s *DefScheduler) removeWaybillFromMap(bill *model.Waybill, savedOrderInfo *WatchOrderInfo) { +func (s *DefScheduler) removeWaybillFromMap(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) { if savedOrderInfo == nil { savedOrderInfo = s.loadWatchOrderFromMap(bill.VendorOrderID, bill.OrderVendorID) } @@ -248,12 +248,14 @@ func (s *DefScheduler) getLatestPickupTimeout(order *model.GoodsOrder, configTim } func (s *DefScheduler) stopTimer(savedOrderInfo *WatchOrderInfo) { + globals.SugarLogger.Debugf("stopTimer orderid:%v", savedOrderInfo.order.VendorOrderID) if savedOrderInfo.timer != nil { savedOrderInfo.timer.Stop() } } func (s *DefScheduler) resetTimer(status int, savedOrderInfo *WatchOrderInfo, gap time.Duration) { + globals.SugarLogger.Debugf("resetTimer status:%v", status) s.stopTimer(savedOrderInfo) config := s.mergeOrderStatusConfig(status, s.GetPurchasePlatformFromVendorID(savedOrderInfo.order.VendorID).GetStatusActionConfig(status)) if config != nil && config.TimeoutAction != nil {