40 lines
1004 B
Python
40 lines
1004 B
Python
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()
|