Schedule poll/notify and the digest as systemd timers

news-cycle.timer runs poll then notify every 15 minutes; news-digest.timer runs
the briefing at 08:45 daily. Both enabled and verified: a manual cycle fetched
1047 items, embedded 95 new ones and clustered them in 74s.

Units are installed as COPIES rather than symlinks. The previous service's units
were symlinked into docs/projects/news/deploy/, and when that repo was renamed
to news_triage they became dangling and the timer failed every ten minutes,
unnoticed, until this rebuild found it. Copying costs a re-copy after editing;
symlinking cost days of silent failure.

Deliberate details: the poll ExecStart is `-` prefixed so a failed fetch does not
skip notify; RandomizedDelaySec spreads polling off the quarter hour rather than
hitting 56 sources at once; the digest is Persistent so a machine that was off
at 08:45 still sends rather than skipping the day.
This commit is contained in:
connor committed 2026-09-08 17:36:03 -04:00
1 parent 327d6a69ae
commit 83bc36aa79
5 files changed
+90 -4

No files matched your search

+12
View File
@@ -0,0 +1,12 @@
[Unit]
Description=news: daily briefing at 08:45 local
[Timer]
OnCalendar=*-*-* 08:45:00
# If the machine was asleep or down at 08:45, still send it on the next boot
# rather than silently skipping the day.
Persistent=true
AccuracySec=1min
[Install]
WantedBy=timers.target