import logging import time from app.core.config import get_settings from app.db.session import SessionLocal from app.services.notifications import create_expiry_notifications logging.basicConfig(level=get_settings().log_level) logger = logging.getLogger("nexapantry.worker") def run_once() -> int: with SessionLocal() as db: return create_expiry_notifications(db) def main() -> None: interval = get_settings().daily_worker_interval_seconds logger.info("NexaPantry worker started") while True: try: count = run_once() logger.info("Created %s notification records", count) except Exception: logger.exception("Worker cycle failed") time.sleep(interval) if __name__ == "__main__": main()