from celery import Celery from core.config import settings import os # Configuración de Celery celery_app = Celery( "microservice", broker=f"redis://{os.getenv('REDIS_HOST', 'localhost')}:{os.getenv('REDIS_PORT', '6379')}/{os.getenv('REDIS_DB', '0')}", backend=f"redis://{os.getenv('REDIS_HOST', 'localhost')}:{os.getenv('REDIS_PORT', '6379')}/{os.getenv('REDIS_DB', '0')}", include=['tasks'] ) # Configuración adicional celery_app.conf.update( # Configuración básica task_serializer='json', accept_content=['json'], result_serializer='json', timezone='UTC', enable_utc=True, # Configuración de workers task_time_limit=3600, # 1 hour timeout worker_prefetch_multiplier=1, worker_max_tasks_per_child=1000, # Configuración de resultados persistentes task_track_started=True, # Guarda cuando la tarea inicia task_ignore_result=False, # Asegura que se guarden los resultados result_expires=60 * 60 * 24 * 7, # Mantiene resultados por 7 días task_store_errors_even_if_ignored=True, # Guarda errores aunque la tarea sea ignorada task_save_success_on_complete=True # Guarda los resultados exitosos ) # Autodiscovery of tasks celery_app.autodiscover_tasks() from api.api_v2.modules.acuses.tasks import process_acuse_request from api.api_v2.modules.coves.tasks import process_cove_request, process_acuse_cove_request from api.api_v2.modules.edocs.tasks import process_edoc_download_request from api.api_v2.modules.pedimentos.tasks import process_pedimento_completo_request from api.api_v2.modules.partidas.tasks import process_partida_request from api.api_v2.modules.remesas.tasks import process_remesa_request