diff --git a/idriz/apps/vaktija/warm.py b/idriz/apps/vaktija/warm.py new file mode 100644 index 0000000..73fec6b --- /dev/null +++ b/idriz/apps/vaktija/warm.py @@ -0,0 +1,28 @@ +"""Pre-warming keša vaktije za konfigurisanu lokaciju (danas + sutra). + +Pokreće se dnevno u 01:00 preko systemd timera (idriz-vaktija-warm.timer), da +odgovori na pitanja o namazu budu trenutni (bez čekanja na API). +""" +import datetime as dt +import logging +import sys + +from . import client, store + + +def main() -> int: + logging.basicConfig(level=logging.INFO, + format="%(asctime)s %(name)s %(levelname)s %(message)s", stream=sys.stderr) + log = logging.getLogger("idriz.vaktija.warm") + loc = store.get_location_id() + today = dt.date.today() + ok = 0 + for d in (today, today + dt.timedelta(days=1)): + if client.fetch_vakat(loc, d): + ok += 1 + log.info("zagrijan keš za %s (id %s): %d/2 dana", store.location_name(loc), loc, ok) + return 0 if ok else 1 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/systemd/idriz-vaktija-warm.service b/systemd/idriz-vaktija-warm.service new file mode 100644 index 0000000..37a2e70 --- /dev/null +++ b/systemd/idriz-vaktija-warm.service @@ -0,0 +1,9 @@ +[Unit] +Description=Idriz - pre-warming keša vaktije (namaz) za default lokaciju +After=network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +WorkingDirectory=%h/src/idriz +ExecStart=%h/src/idriz/.venv/bin/python -m idriz.apps.vaktija.warm diff --git a/systemd/idriz-vaktija-warm.timer b/systemd/idriz-vaktija-warm.timer new file mode 100644 index 0000000..08ac28e --- /dev/null +++ b/systemd/idriz-vaktija-warm.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Dnevno zagrijavanje keša vaktije u 01:00 + +[Timer] +OnCalendar=*-*-* 01:00:00 +Persistent=true + +[Install] +WantedBy=timers.target