from __future__ import annotations from celery import Celery from app.core.config import settings celery_app = Celery( "docengine", broker=settings.celery_broker_url, backend=settings.celery_result_backend, ) celery_app.conf.update( task_serializer="json", accept_content=["json"], result_serializer="json", timezone="UTC", enable_utc=True, task_track_started=True, task_time_limit=3600, task_soft_time_limit=3300, worker_max_tasks_per_child=100, worker_prefetch_multiplier=1, task_acks_late=True, task_reject_on_worker_lost=True, broker_connection_retry_on_startup=True, result_expires=86400, task_routes={ "app.tasks.document_tasks.*": {"queue": "document_processing"}, }, beat_schedule={ "cleanup-expired-tokens": { "task": "app.tasks.maintenance_tasks.cleanup_expired_tokens", "schedule": 3600.0, }, "cleanup-temp-storage": { "task": "app.tasks.maintenance_tasks.cleanup_temp_storage", "schedule": 7200.0, }, }, ) celery_app.autodiscover_tasks(["app.tasks"])