feat(PROJ-56): OCR-Pausenfenster per SIGHUP-Reload statt Restart

paused_hours konnte bisher nur über einen vollen Prozess-Restart geändert
werden, was SMTP/IMAP/API unnötig unterbricht. Worker.pausedHours ist jetzt
ein atomic.Pointer mit SetPausedHours(); SIGHUP liest config.yml neu und
aktualisiert nur die OCR-Pausenzeit im laufenden Prozess. Neue
deploy/cron.d/archivmail-ocr-pause(.sh) lässt Admins die Pausenzeiten direkt
in der Cron-Datei pflegen und löst per systemctl reload statt restart aus.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sysops
2026-06-24 14:46:13 +02:00
co-authored by Claude Sonnet 4.6
parent be48a99af9
commit dba9939880
5 changed files with 119 additions and 12 deletions
+20
View File
@@ -0,0 +1,20 @@
# archivmail — OCR-Pausenfenster (PROJ-56)
#
# Steuert paused_hours in /etc/archivmail/config.yml und löst per
# "systemctl reload" (SIGHUP) einen Reload aus, damit die neue Pausenzeit
# sofort greift — ohne den Prozess neu zu starten (kein Verbindungsabbruch
# für SMTP/IMAP/API). Mails gehen dabei nie verloren: ocr_status='pending'
# bleibt in der DB bestehen und wird von der Backfill-Goroutine laufend
# nachgezogen, unabhängig von Pausen oder Neustarts.
#
# Anpassen: einfach die beiden Uhrzeiten unten ändern (Minute Stunde * * *)
# und an die crontab-Syntax halten. Bei wrap-around Fenstern (z.B. 22:0006:00)
# einfach "start" auf den späteren, "stop" auf den früheren Zeitpunkt legen.
#
# Format: Minute Stunde Tag Monat Wochentag User Befehl
#
# Pause starten um 22:00 Uhr
0 22 * * * root /usr/local/bin/archivmail-ocr-pause.sh start 22 6
#
# Pause beenden um 06:00 Uhr
0 6 * * * root /usr/local/bin/archivmail-ocr-pause.sh stop