import sys import time import logging from pathlib import Path # Add backend directory to path backend_path = Path(__file__).resolve().parent.parent sys.path.append(str(backend_path)) from app.config.database import SessionLocal from app.services.auth.event_service import EventService logging.basicConfig(level=logging.INFO) logger = logging.getLogger("event_worker") def run_worker(): logger.info("Starting Event Worker (Outbox Processor)...") while True: try: db = SessionLocal() try: # Process events EventService.process_outbox(db) finally: db.close() # Sleep to avoid busy loop time.sleep(5) except KeyboardInterrupt: logger.info("Stopping worker...") break except Exception as e: logger.error(f"Worker crash: {e}") time.sleep(5) if __name__ == "__main__": run_worker()