// 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
// 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)
}