- error handling now uses a more comprehensive error communication system.

This commit is contained in:
Josako
2025-09-11 14:46:28 +02:00
parent 7cb19ca21e
commit a325fa5084
13 changed files with 216 additions and 59 deletions

View File

@@ -5,6 +5,7 @@ import traceback
from flask import current_app
from celery import states
from sqlalchemy.exc import SQLAlchemyError, InterfaceError, OperationalError
from redis.exceptions import ConnectionError as RedisConnectionError, TimeoutError as RedisTimeoutError
from common.utils.config_field_types import TaggingFields
from common.utils.database import Database
@@ -21,7 +22,9 @@ from common.utils.execution_progress import ExecutionProgressTracker
# Healthcheck task
@current_celery.task(name='ping', queue='llm_interactions')
@current_celery.task(bind=True, name='ping', queue='llm_interactions',
autoretry_for=(InterfaceError, OperationalError, RedisConnectionError, RedisTimeoutError, OSError),
retry_backoff=True, retry_jitter=True, max_retries=5)
def ping():
return 'pong'
@@ -215,7 +218,9 @@ def prepare_arguments(specialist: Any, arguments: Dict[str, Any]) -> Dict[str, A
raise ArgumentPreparationError(str(e))
@current_celery.task(bind=True, name='execute_specialist', queue='llm_interactions', autoretry_for=(InterfaceError, OperationalError), retry_backoff=True, retry_jitter=True, max_retries=5)
@current_celery.task(bind=True, name='execute_specialist', queue='llm_interactions',
autoretry_for=(InterfaceError, OperationalError),
retry_backoff=True, retry_jitter=True, max_retries=5)
def execute_specialist(self, tenant_id: int, specialist_id: int, arguments: Dict[str, Any],
session_id: str, user_timezone: str) -> dict:
"""