From d67479309da379aba3d22a08825f6b77addc37b5 Mon Sep 17 00:00:00 2001 From: "itdrui.de" Date: Fri, 13 Mar 2026 13:59:17 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20Telegram=20idle()=20entfernt=20(PTB=20v2?= =?UTF-8?q?1),=20WhatsApp-Polling-Intervall=20auf=2010s=20erh=C3=B6ht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- channels/telegram_channel.py | 5 +++-- tasks/receiver.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/channels/telegram_channel.py b/channels/telegram_channel.py index c94a17a..dde9974 100644 --- a/channels/telegram_channel.py +++ b/channels/telegram_channel.py @@ -82,8 +82,9 @@ class TelegramChannel(BaseChannel): """Endlos-Polling im Hintergrund.""" try: await self._app.updater.start_polling(allowed_updates=["message"]) - # Warte bis gestoppt - await self._app.updater.idle() + # In PTB v20+ läuft der Updater als eigener asyncio-Task weiter – + # wir warten hier einfach, bis der Task abgebrochen wird. + await asyncio.Event().wait() except asyncio.CancelledError: pass except Exception as exc: diff --git a/tasks/receiver.py b/tasks/receiver.py index 4ec1ea9..f5f0efc 100644 --- a/tasks/receiver.py +++ b/tasks/receiver.py @@ -21,14 +21,15 @@ def build_scheduler(whatsapp: "WhatsAppChannel") -> AsyncIOScheduler: _scheduler = AsyncIOScheduler(timezone="UTC") - # WhatsApp-Polling alle 5 Sekunden + # WhatsApp-Polling alle 10 Sekunden (coalesce=True überspringt verpasste Läufe) _scheduler.add_job( _poll_whatsapp, - trigger=IntervalTrigger(seconds=5), + trigger=IntervalTrigger(seconds=10), id="whatsapp-poll", name="WhatsApp incoming messages", max_instances=1, coalesce=True, + misfire_grace_time=5, ) return _scheduler