Files
microservice/celery_app.py

43 lines
1.7 KiB
Python

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