from src.celery_app import celery_app from src.tools.analysis_tools import trigger_interview_analysis import logging logger = logging.getLogger(__name__) @celery_app.task(bind=True, max_retries=3, default_retry_delay=30) def run_analysis_task(self, user_id, job_offer_id, job_description, conversation_history, cv_content, cheat_metrics=None, simulation_report=None): """ Background task to run the feedback analysis. """ logger.info(f"Starting background analysis for job {job_offer_id}") try: result = trigger_interview_analysis.invoke({ "user_id": user_id, "job_offer_id": job_offer_id, "job_description": job_description, "conversation_history": conversation_history, "cv_content": cv_content, "cheat_metrics": cheat_metrics or {}, "simulation_report": simulation_report }) logger.info("Background analysis completed successfully") return result except Exception as e: logger.error(f"Background analysis failed (attempt {self.request.retries + 1}): {e}") raise self.retry(exc=e)