Files
flowsint/flowsint-api/app/tasks/event.py
T
2025-06-20 11:36:53 +02:00

27 lines
748 B
Python

# tasks/logging.py
from typing import Dict
from app.core.celery import celery
import redis
import json
import logging
import os
from app.core.enums import EventLevel
from app.core.types import Event
logger = logging.getLogger(__name__)
@celery.task(name="emit_event")
def emit_event_task(log_id: str, sketch_id: str, log_type: EventLevel, content: Dict):
"""Celery task to emit a log event"""
try:
event = Event(
id=log_id,
sketch_id=sketch_id,
type=log_type,
payload=content
).model_dump_json()
redis_client = redis.from_url(os.getenv("REDIS_URI", "redis://127.0.0.1:6379/0"))
redis_client.publish(sketch_id, event)
except Exception as e:
raise