diff --git a/dtmsvr/trans_status.go b/dtmsvr/trans_status.go index 4f1aa31..965d416 100644 --- a/dtmsvr/trans_status.go +++ b/dtmsvr/trans_status.go @@ -148,6 +148,8 @@ func (t *TransGlobal) getNextCronInterval(ctype cronType) int64 { return t.NextCronInterval } else if t.RetryInterval != 0 { return t.RetryInterval + } else if t.TimeoutToFail > 0 && t.TimeoutToFail < conf.RetryInterval { + return t.TimeoutToFail } else { return conf.RetryInterval } diff --git a/dtmsvr/utils_test.go b/dtmsvr/utils_test.go index 2c24571..15f8635 100644 --- a/dtmsvr/utils_test.go +++ b/dtmsvr/utils_test.go @@ -18,10 +18,14 @@ func TestUtils(t *testing.T) { } func TestSetNextCron(t *testing.T) { + conf.RetryInterval = 10 tg := TransGlobal{} + tg.NextCronInterval = conf.RetryInterval tg.RetryInterval = 15 assert.Equal(t, int64(15), tg.getNextCronInterval(cronReset)) tg.RetryInterval = 0 assert.Equal(t, conf.RetryInterval, tg.getNextCronInterval(cronReset)) assert.Equal(t, conf.RetryInterval*2, tg.getNextCronInterval(cronBackoff)) + tg.TimeoutToFail = 3 + assert.Equal(t, int64(3), tg.getNextCronInterval(cronReset)) }