- fix resetTimer error.
This commit is contained in:
@@ -352,7 +352,7 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, statusType, st
|
||||
if config == nil || config.TimerType != scheduler.TimerTypeByPass {
|
||||
s.stopTimer(savedOrderInfo)
|
||||
}
|
||||
if config != nil && config.TimeoutAction != nil && config.TimerType != scheduler.TimerTypeNoTimer && config.TimerType != scheduler.TimerTypeByPass {
|
||||
if config != nil && config.TimeoutAction != nil && config.TimerType != scheduler.TimerTypeByPass {
|
||||
var timeout time.Duration
|
||||
switch config.TimerType {
|
||||
case scheduler.TimerTypeBaseNow:
|
||||
@@ -389,7 +389,7 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, statusType, st
|
||||
}, order.VendorOrderID)
|
||||
})
|
||||
}
|
||||
globals.SugarLogger.Debugf("resetTimer orderID:%s, status:%d, timeout:%v", order.VendorOrderID, status, timeout)
|
||||
globals.SugarLogger.Debugf("resetTimer, orderID:%s, status:%d, timeout:%v", order.VendorOrderID, status, timeout)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -433,13 +433,18 @@ func (s *DefScheduler) mergeOrderStatusConfig(statusType, status int, config *sc
|
||||
}
|
||||
retVal = &scheduler.StatusActionConfig{}
|
||||
if defConfig != nil {
|
||||
retVal.Timeout = defConfig.Timeout
|
||||
retVal.TimeoutAction = defConfig.TimeoutAction
|
||||
*retVal = *defConfig
|
||||
}
|
||||
if config != nil {
|
||||
if config.Timeout >= 0 {
|
||||
if config.Timeout != 0 {
|
||||
retVal.Timeout = config.Timeout
|
||||
}
|
||||
if config.TimerType != scheduler.TimerTypeNoOverride {
|
||||
retVal.TimerType = config.TimerType
|
||||
}
|
||||
if config.TimeoutGap != 0 {
|
||||
retVal.TimeoutGap = config.TimeoutGap
|
||||
}
|
||||
if config.TimeoutAction != nil {
|
||||
retVal.TimeoutAction = config.TimeoutAction
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
TimerTypeNoTimer = 0 // 即此状态没有TIMER(但为停掉之前的TIMER,如果要保持TIMER应该用TimerTypeByPass),状态没有配置缺省就是没有TIMER
|
||||
TimerTypeNoOverride = 0 // GetStatusActionConfig 返回表示不修改缺省配置
|
||||
TimerTypeByPass = 1
|
||||
TimerTypeBaseNow = 2
|
||||
TimerTypeBaseStatusTime = 3
|
||||
@@ -38,9 +38,9 @@ var (
|
||||
|
||||
type StatusActionConfig struct {
|
||||
TimerType int // 参见上面的相关常量定义
|
||||
Timeout time.Duration // 超时时间,为0表示立即执行(其实也不能立即执行,因为有最小时间限制)
|
||||
TimeoutGap int // 以秒为单位的随机时间,0表示不随机
|
||||
TimeoutAction func(order *model.GoodsOrder) (err error) // 超时后需要执行的动作,为nil表示此状态不需要执行监控
|
||||
Timeout time.Duration // 超时时间,0在GetStatusActionConfig返回时表示不修改缺省
|
||||
TimeoutGap int // 以秒为单位的随机时间,0在GetStatusActionConfig返回时表示不修改缺省
|
||||
TimeoutAction func(order *model.GoodsOrder) (err error) // 超时后需要执行的动作,为nil表示此状态不需要执行监控, nil在GetStatusActionConfig返回时表示不修改缺省
|
||||
}
|
||||
|
||||
type PurchasePlatformHandler interface {
|
||||
|
||||
Reference in New Issue
Block a user