"""Celery: приложение воркера и каркасные задачи."""
from celery import Celery
from app.config import get_settings
settings = get_settings()
celery_app = Celery(
"synapse",
broker=settings.redis_url,
backend=settings.redis_url,
include=["app.worker.tasks"],
)
celery_app.conf.update(
task_default_queue="synapse",
task_track_started=True,
# Ретраи доставок: beat стартует вместе с воркером (`worker -B`),
# раз в 60 с просмотр pending с наступившим next_retry_at.
beat_schedule={
"retry-due-deliveries": {
"task": "synapse.retry_due",
"schedule": 60.0,
},
},
task_acks_late=True,
worker_prefetch_multiplier=1,
)