41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import logging
|
|
from celery import Celery
|
|
from celery.signals import setup_logging
|
|
|
|
from rag.settings import settings
|
|
|
|
celery_app = Celery(
|
|
"hr_ai_backend",
|
|
broker=f"redis://{settings.redis_cache_url}:{settings.redis_cache_port}/{settings.redis_cache_db}",
|
|
backend=f"redis://{settings.redis_cache_url}:{settings.redis_cache_port}/{settings.redis_cache_db}",
|
|
include=["celery_worker.tasks", "celery_worker.interview_analysis_task"],
|
|
)
|
|
|
|
celery_app.conf.update(
|
|
task_serializer="json",
|
|
accept_content=["json"],
|
|
result_serializer="json",
|
|
timezone="UTC",
|
|
enable_utc=True,
|
|
worker_log_format="[%(asctime)s: %(levelname)s/%(processName)s] %(message)s",
|
|
worker_task_log_format="[%(asctime)s: %(levelname)s/%(processName)s][%(task_name)s(%(task_id)s)] %(message)s",
|
|
task_acks_late=True,
|
|
worker_prefetch_multiplier=1,
|
|
task_reject_on_worker_lost=True,
|
|
result_extended=True,
|
|
)
|
|
|
|
@setup_logging.connect
|
|
def config_loggers(*args, **kwargs):
|
|
"""Configure logging for Celery worker"""
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format="[%(asctime)s: %(levelname)s/%(name)s] %(message)s",
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
)
|
|
|
|
# Set specific log levels
|
|
logging.getLogger("celery").setLevel(logging.INFO)
|
|
logging.getLogger("celery.worker").setLevel(logging.INFO)
|
|
logging.getLogger("celery.task").setLevel(logging.INFO)
|