Daily maintenance scheduler
Part of #2820 (closed)
This adds a daily maintenance background worker that optimizes repositories in random order. The background worker is configurable to start at the same time each day for a specified duration of time. The feature must be explicitly enabled for a storage in the configuration file.
For observability, the maintenance window is logged when started, ended, when it incurs an error, and when the next window is determined. Also, a histogram tracks the duration of each repo optimization.
Edited by Paul Okstad (ex-GitLab)