diff --git a/app/services/scheduler.py b/app/services/scheduler.py index 7ed78d4..70d52e3 100644 --- a/app/services/scheduler.py +++ b/app/services/scheduler.py @@ -115,7 +115,15 @@ def _poll_account_sync(account_id: int) -> None: .all() ) + # Neueste UIDs zuerst — sonst arbeitet der Scheduler bei großem + # Backlog erst durch Jahre alte Newsletter, bevor er aktuelle + # Rechnungen erreicht. UIDs sind auf IMAP-Servern monoton + # steigend, daher sortiert reverse-int zuverlässig neu→alt. new_uids = [uid for uid in all_uids if uid not in processed_uids] + try: + new_uids.sort(key=int, reverse=True) + except (ValueError, TypeError): + new_uids.reverse() if not new_uids: write_log(