]> source.dussan.org Git - gitea.git/commitdiff
In PushMirrorsIterate and MirrorsIterate if limit is negative do not set it (#20837...
authorzeripath <art27@cantab.net>
Tue, 23 Aug 2022 16:38:52 +0000 (17:38 +0100)
committerGitHub <noreply@github.com>
Tue, 23 Aug 2022 16:38:52 +0000 (12:38 -0400)
Backport #20837

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
models/repo/mirror.go
models/repo/pushmirror.go

index 6a95bc48c44b63b3d37549fa55a24d0ca580c12a..297ffd594a720fe5b9fa054754ca5a3a90b9da64 100644 (file)
@@ -107,12 +107,14 @@ func DeleteMirrorByRepoID(repoID int64) error {
 
 // MirrorsIterate iterates all mirror repositories.
 func MirrorsIterate(limit int, f func(idx int, bean interface{}) error) error {
-       return db.GetEngine(db.DefaultContext).
+       sess := db.GetEngine(db.DefaultContext).
                Where("next_update_unix<=?", time.Now().Unix()).
                And("next_update_unix!=0").
-               OrderBy("updated_unix ASC").
-               Limit(limit).
-               Iterate(new(Mirror), f)
+               OrderBy("updated_unix ASC")
+       if limit > 0 {
+               sess = sess.Limit(limit)
+       }
+       return sess.Iterate(new(Mirror), f)
 }
 
 // InsertMirror inserts a mirror to database
index 048c0c3487b75b4996506ed88cc1f72ff9a08c66..42dbaef3fd6a549a1c423beac7b71de4e5b396e0 100644 (file)
@@ -95,10 +95,12 @@ func GetPushMirrorsByRepoID(repoID int64) ([]*PushMirror, error) {
 
 // PushMirrorsIterate iterates all push-mirror repositories.
 func PushMirrorsIterate(limit int, f func(idx int, bean interface{}) error) error {
-       return db.GetEngine(db.DefaultContext).
+       sess := db.GetEngine(db.DefaultContext).
                Where("last_update + (`interval` / ?) <= ?", time.Second, time.Now().Unix()).
                And("`interval` != 0").
-               OrderBy("last_update ASC").
-               Limit(limit).
-               Iterate(new(PushMirror), f)
+               OrderBy("last_update ASC")
+       if limit > 0 {
+               sess = sess.Limit(limit)
+       }
+       return sess.Iterate(new(PushMirror), f)
 }