feat(PROJ-58): Indexierung + OCR optional als Cron-Batch statt Dauerbetrieb

Neues config.yml-Feld batch_mode (index/ocr, Default false = unverändertes
Verhalten). Bei batch_mode:true verarbeiten neue Cron-Jobs (index-pending,
ocr-reprocess) die Backlogs in größeren Abständen statt sofort bei jedem
Mail-Import, um Schreiblast auf der Festplatte zu glätten. Zeiten in
/etc/cron.d/archivmail frei anpassbar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sysops
2026-06-24 23:07:17 +02:00
co-authored by Claude Sonnet 4.6
parent 76655f78a2
commit fae274f930
10 changed files with 407 additions and 20 deletions
+14
View File
@@ -30,6 +30,12 @@ index:
backend: xapian
batch_size: 100
async_queue_size: 1000
# PROJ-58: batch_mode (optional, default false).
# true = der Dauerbetrieb-Index-Worker wird NICHT gestartet; neue Mails
# bleiben indexed_at IS NULL bis der Cron-Job 'archivmail index-pending'
# sie verarbeitet (siehe deploy/cron.d/archivmail). Glättet Schreiblast.
# false (Default) = sofortige, fortlaufende Indexierung wie bisher.
# batch_mode: false
api:
bind: "0.0.0.0:8080"
@@ -61,6 +67,14 @@ imap_server:
# Ohne Sektion / ohne paused_hours: altes Verhalten (immer aktiv).
# ocr:
# paused_hours: [8, 18] # OCR pausiert während der Geschäftszeiten
#
# PROJ-58: ocr.batch_mode (optional, default false).
# true = der Dauerbetrieb-OCR-Worker wird NICHT gestartet; neue Mails bleiben
# ocr_status='pending' bis der Cron-Job
# 'archivmail ocr-reprocess --status pending' sie verarbeitet
# (siehe deploy/cron.d/archivmail). false (Default) = sofortige Verarbeitung.
# ocr:
# batch_mode: false
# PROJ-56: IMAP-Sync-Jitter (optional).
# jitter_seconds verteilt den tatsächlichen Sync-Start jedes Accounts