"""Celery 应用实例"""
from celery import Celery
from app.config import settings

celery_app = Celery(
    "sme_omnistore",
    broker=settings.REDIS_URL,
    backend=settings.REDIS_URL,
    include=["app.tasks.email_tasks", "app.plugins.bulk_import.tasks",
             "app.plugins.catalog_transfer.tasks"],
)

celery_app.conf.update(
    task_serializer="json",
    accept_content=["json"],
    result_serializer="json",
    timezone="UTC",
    enable_utc=True,
    task_acks_late=True,          # 执行完才 ack，失败可重试
    worker_prefetch_multiplier=1, # 一次只取 1 个任务，控制内存
    task_track_started=True,
    broker_connection_retry_on_startup=True,
)
