From 37b6b820163d58e2a715fa41221bc706ffaaa678 Mon Sep 17 00:00:00 2001 From: markosbenitez Date: Fri, 29 May 2026 10:35:14 -0300 Subject: [PATCH] =?UTF-8?q?fix:=20revisi=C3=B3n=20inicial=20respeta=20hora?= =?UTF-8?q?rio;=20health=20alert=20solo=20en=20horario=20h=C3=A1bil=20PYT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- health.py | 10 ++++++++++ poller.py | 11 +++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/health.py b/health.py index 251e883..483bb9c 100644 --- a/health.py +++ b/health.py @@ -25,6 +25,9 @@ import hashlib import json import secrets from datetime import datetime, timedelta, timezone +from zoneinfo import ZoneInfo + +_PY_TZ = ZoneInfo("America/Asuncion") from typing import TYPE_CHECKING import aiohttp.web @@ -231,6 +234,13 @@ class HealthServer: await asyncio.sleep(300) if _last_poll_at is None or _alert_sent: continue + ahora_py = datetime.now(_PY_TZ) + en_horario = ( + ahora_py.weekday() < 5 + and self._settings.poll_hora_inicio <= ahora_py.hour < self._settings.poll_hora_fin + ) + if not en_horario: + continue delta = datetime.now(timezone.utc) - _last_poll_at if delta <= timedelta(hours=self._settings.health_alert_hours): continue diff --git a/poller.py b/poller.py index bfc74eb..868e26a 100644 --- a/poller.py +++ b/poller.py @@ -205,10 +205,13 @@ class Poller: hora_fin=self._settings.poll_hora_fin, ) - logger.info("revision_inicial_al_arrancar") - count = await self.revisar_ahora() - if self._on_poll_done: - self._on_poll_done(count) + if self._en_horario_habitual(): + logger.info("revision_inicial_al_arrancar") + count = await self.revisar_ahora() + if self._on_poll_done: + self._on_poll_done(count) + else: + logger.info("revision_inicial_skipped_fuera_de_horario") while self._running: try: