Description
Description
The update_mirrors cron is updating all mirros (where updated_unix is ...) in one row. In my case I'm running the one once per day. That the cron needs ~2,5h to update all >6000 mirrors. And if Gitea is updating too much repos in one row GitHub is blocking Gite for some minutes. In this case Gitea gets 503 HTTP-ERROR
2021/09/07 04:09:27 ...irror/mirror_pull.go:176:runSync() [E] Failed to update mirror repository &{394 67 OpenAPITools <nil> openapi-generator-cli openapi-generator-cli 2 https://github.com/OpenAPITools/openapi-generator-cli.git master 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 false false false true <nil> [] 0 map[] map[] [] <nil> false 0 <nil> false 0 <nil> 54835310 <nil> <nil> false false [openapi openapi3 npm openapi-generator openapi2] default 1615665794 1630844437}:
Stdout: Fetching origin
Stderr: fatal: unable to access 'https://github.com/OpenAPITools/openapi-generator-cli.git/': The requested URL returned error: 503
error: Could not fetch origin
Err: exit status 1
/source/services/mirror/mirror_pull.go:176 (0x2006e8a)
/source/services/mirror/mirror_pull.go:276 (0x2008e9e)
/source/services/mirror/mirror.go:79 (0x2004545)
/source/modules/graceful/manager.go:139 (0xc5c565)
/usr/local/go/src/runtime/asm_amd64.s:1371 (0x47aa40)
In this case I would preffer some config parameter where I can set the size of the current update_mirror cron.
; Update mirrors
[cron.update_mirrors]
; SCHEDULE = @every 24h
SCHEDULE = 0 0 * * * *
**LIMIT_SIZE = 50**
In this case the update_mirrors cron will run every hour und call the update for the 50 oldest (select * from repository where is_mirror = true order by updated_unix asc limit 50) mirrors. And if LIMIT_SIZE is not set, then it will gets all mirrors in the right order.
Or is this now possible?
There is an MIRROR_QUEUE_LENGTH config parameter. But I didn't find the usage in code.