opt cron sql

This commit is contained in:
yedongfu 2021-07-20 21:38:53 +08:00
parent 1bf7fa75df
commit e73e20a867

View File

@ -35,8 +35,9 @@ func lockOneTrans(expireIn time.Duration) *TransGlobal {
trans := TransGlobal{} trans := TransGlobal{}
owner := GenGid() owner := GenGid()
db := dbGet() db := dbGet()
// 这里next_cron_time需要限定范围否则数据量累计之后会导致查询变慢
dbr := db.Must().Model(&trans). 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) Limit(1).Update("owner", owner)
if dbr.RowsAffected == 0 { if dbr.RowsAffected == 0 {
return nil return nil