Ensures that: - git maintenance timers have a fixed time interval between execution. - the three timers are not executed at the same time. This is intended to implement an alternative to the two followings commits: c97ec0378b (maintenance: fix systemd schedule overlaps, 2023-08-10) daa787010c (maintenance: use random minute in systemd scheduler, 2023-08-10) Instead of manually adding a specific minute (which is reset on each invocation of `git maintenance start`), we use systemd timers RandomizedDelaySec and FixedRandomDelay functionalities. >From man systemd.timer: >FixedRandomDelay= > Takes a boolean argument. When enabled, the randomized offset > specified by RandomizedDelaySec= is reused for all firings of the > same timer. For a given timer unit, **the offset depends on the > machine ID, user identifier and timer name**, which means that it is > stable between restarts of the manager. This effectively creates a > fixed offset for an individual timer, reducing the jitter in > firings of this timer, while still avoiding firing at the same time > as other similarly configured timers. -> which is exactly the use case for git-maintenance timers. Signed-off-by: Max Gautier <mg@xxxxxxxxxxxxxxxx> --- systemd/user/git-maintenance@.service | 1 + systemd/user/git-maintenance@.timer | 3 +++ 2 files changed, 4 insertions(+) diff --git a/systemd/user/git-maintenance@.service b/systemd/user/git-maintenance@.service index 87ac0c86e6..f949e1a217 100644 --- a/systemd/user/git-maintenance@.service +++ b/systemd/user/git-maintenance@.service @@ -1,5 +1,6 @@ [Unit] Description=Optimize Git repositories data +Documentation=man:git-maintenance(1) [Service] Type=oneshot diff --git a/systemd/user/git-maintenance@.timer b/systemd/user/git-maintenance@.timer index 40fbc77a62..667c5998ba 100644 --- a/systemd/user/git-maintenance@.timer +++ b/systemd/user/git-maintenance@.timer @@ -1,9 +1,12 @@ [Unit] Description=Optimize Git repositories data +Documentation=man:git-maintenance(1) [Timer] OnCalendar=%i Persistent=true +RandomizedDelaySec=1800 +FixedRandomDelay=true [Install] WantedBy=timers.target -- 2.44.0