From 08994c8c421f028a0b6bfad1ebfebed95179dfbc Mon Sep 17 00:00:00 2001 From: yedongfu Date: Sat, 5 Jun 2021 16:16:06 +0800 Subject: [PATCH] update sleep CronTime --- app/main.go | 4 ++-- dtmsvr/config.go | 4 ++-- dtmsvr/cron.go | 2 +- dtmsvr/main.go | 2 ++ 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/main.go b/app/main.go index 9997588..eeb2766 100644 --- a/app/main.go +++ b/app/main.go @@ -14,7 +14,7 @@ type M = map[string]interface{} func main() { if len(os.Args) == 1 { // 默认情况下,展示saga例子 dtmsvr.PopulateMysql() - go dtmsvr.StartSvr() + go dtmsvr.Main() go examples.SagaStartSvr() time.Sleep(100 * time.Millisecond) examples.SagaFireRequest() @@ -23,7 +23,7 @@ func main() { } else if os.Args[1] == "all" { // 运行所有示例 dtmsvr.PopulateMysql() examples.PopulateMysql() - go dtmsvr.StartSvr() + go dtmsvr.Main() go examples.SagaStartSvr() go examples.TccStartSvr() go examples.XaStartSvr() diff --git a/dtmsvr/config.go b/dtmsvr/config.go index 85df1c8..6c0fdcb 100644 --- a/dtmsvr/config.go +++ b/dtmsvr/config.go @@ -1,8 +1,8 @@ package dtmsvr type dtmsvrConfig struct { - PreparedExpire int64 // 单位秒,处于prepared中的任务,过了这个时间,查询结果还是PENDING的话,则会被cancel - JobCronInterval int64 // 单位秒 当事务等待这个时间之后,还没有变化,则进行一轮处理,包括prepared中的任务和commited的任务 + PreparedExpire uint64 // 单位秒,处于prepared中的任务,过了这个时间,查询结果还是PENDING的话,则会被cancel + JobCronInterval uint64 // 单位秒 当事务等待这个时间之后,还没有变化,则进行一轮处理,包括prepared中的任务和commited的任务 Mysql map[string]string } diff --git a/dtmsvr/cron.go b/dtmsvr/cron.go index 7a391a8..119cf62 100644 --- a/dtmsvr/cron.go +++ b/dtmsvr/cron.go @@ -61,6 +61,6 @@ func handlePanic() { func sleepCronTime() { delta := math.Min(3, float64(config.JobCronInterval)) - interval := time.Duration(rand.Float64() * delta * float64(time.Second)) + interval := time.Duration((float64(config.JobCronInterval) - rand.Float64()*delta) * float64(time.Second)) time.Sleep(interval) } diff --git a/dtmsvr/main.go b/dtmsvr/main.go index 02cd39c..feaac95 100644 --- a/dtmsvr/main.go +++ b/dtmsvr/main.go @@ -12,6 +12,8 @@ var dtmsvrPort = 8080 func Main() { go StartSvr() + go CronCommitted() + go CronPrepared() } func StartSvr() {