From e73e20a86775c9f97943301a30993f4dfa6749c2 Mon Sep 17 00:00:00 2001 From: yedongfu Date: Tue, 20 Jul 2021 21:38:53 +0800 Subject: [PATCH] opt cron sql --- dtmsvr/cron.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dtmsvr/cron.go b/dtmsvr/cron.go index 3f79f63..9941f27 100644 --- a/dtmsvr/cron.go +++ b/dtmsvr/cron.go @@ -35,8 +35,9 @@ func lockOneTrans(expireIn time.Duration) *TransGlobal { trans := TransGlobal{} owner := GenGid() db := dbGet() + // 这里next_cron_time需要限定范围,否则数据量累计之后,会导致查询变慢 dbr := db.Must().Model(&trans). - Where("next_cron_time < date_add(now(), interval ? second) and status in ('prepared', 'aborting', 'submitted')", int(expireIn/time.Second)). + Where("next_cron_time < date_add(now(), interval ? second) and next_cron_time > date_add(now(), interval -3600 second) and status in ('prepared', 'aborting', 'submitted')", int(expireIn/time.Second)). Limit(1).Update("owner", owner) if dbr.RowsAffected == 0 { return nil