From b9e59e119776921525c623530a1a5014768c32da Mon Sep 17 00:00:00 2001 From: gazebo Date: Sat, 21 Jul 2018 14:17:48 +0800 Subject: [PATCH] - set dynamic token when starting up. --- business/scheduler/defsch/defsch.go | 3 +-- legacy/tasks/configrefresh.go | 29 +++++++++++++---------------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index 3bdbb4880..8fdcdb135 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -218,8 +218,7 @@ func (s *DefScheduler) createWaybillOn3rdProviders(order *model.GoodsOrder, excl func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) { globals.SugarLogger.Debugf("cancelOtherWaybills, order:%v, bill:%v", savedOrderInfo.order, bill) for _, v := range savedOrderInfo.waybills { - if bill == nil || (v.WaybillVendorID != bill.OrderVendorID && !(v.WaybillVendorID == bill.WaybillVendorID && v.VendorWaybillID == bill.VendorWaybillID)) { - globals.SugarLogger.Debugf("cancelOtherWaybills, cancel bill:%v", v) + if (v.OrderVendorID != v.WaybillVendorID) && (bill == nil || !(v.WaybillVendorID == bill.WaybillVendorID && v.VendorWaybillID == bill.VendorWaybillID)) { _ = s.GetDeliveryPlatformFromVendorID(v.WaybillVendorID).CancelWaybill(v) } } diff --git a/legacy/tasks/configrefresh.go b/legacy/tasks/configrefresh.go index f8d2b313b..5da80d66e 100644 --- a/legacy/tasks/configrefresh.go +++ b/legacy/tasks/configrefresh.go @@ -36,7 +36,7 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun if sleepGap > maxRefreshGap { sleepGap = maxRefreshGap } - refreshFunc := func() error { + refreshFunc := func() (string, error) { curConfig := &models.Config{ Thirdparty: configKey, } @@ -46,22 +46,18 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun if err := db.Read(curConfig, "Thirdparty"); err != nil { if err != orm.ErrNoRows { globals.SugarLogger.Errorf("db error:%v, curConfig:%v", err, curConfig) - return err - } else { - curConfig.Token = configGetter() - handleType = 2 - } - } else { - latestTimeStr := utils.Time2Str(time.Now().Add(-needRefreshGap)) - if curConfig.Date <= latestTimeStr { - if curConfig.Token = configGetter(); curConfig.Token == "" { - return fmt.Errorf("can not get token for %s", configKey) - } - handleType = 1 + return "", err } + handleType = 2 + } else if curConfig.Date <= utils.Time2Str(time.Now().Add(-needRefreshGap)) { + handleType = 1 } if handleType != 0 { + if curConfig.Token = configGetter(); curConfig.Token == "" { + return "", fmt.Errorf("can not get token for %s", configKey) + } globals.SugarLogger.Debugf("refresh %s, value:%s", configKey, curConfig.Token) + curConfig.Date = utils.GetCurTimeStr() var num int64 var err error @@ -73,15 +69,16 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun } if err != nil || num == 0 { globals.SugarLogger.Errorf("db error:%v, num:%d, curConfig:%v", err, num, curConfig) - return err + return "", err } else { configSetter(curConfig.Token) } } - return nil + return curConfig.Token, nil } - err := refreshFunc() // 这样写的目的是强制第一次调用时要刷新一次 + token, err := refreshFunc() // 这样写的目的是强制第一次调用时要刷新一次 if err == nil { + configSetter(token) go func() { for { time.Sleep(sleepGap)