Django celery apply_async выполняется несколько раз

Используется Django 2.2 и Celery 4.4.7.

Использование AWS ECS для развертывания приложения и celery и использование SQS в качестве брокера сообщений.

В определении задачи ECS для запуска задачи celery используется следующая команда

["celery","worker","-A","app","-l","info","--concurrency","4"]

Выполняется 8 задач для службы celery и 4 задачи для приложения

enter image description here

При использовании apply_async для отсрочки выполнения задачи

send_webhook_task.apply_async(
    kwargs={
        'tracking_id': tracking_data.id,
        'hook_url': hook.url
    },
    countdown=60
)

Приведенное выше задание выполняется через 60 секунд, но оно выполняется 3-4 раза, и одни и те же данные отправляются несколько раз.

То же самое при использовании delay() выполняется только один раз

send_webhook_task.delay(
    tracking_id=tracking_data.id,
    hook_url=hook.url
)

Почему apply_sync выполняется несколько раз с вышеуказанной установкой?

Настройки брокера сельдерея

CELERY_BROKER_TRANSPORT_OPTIONS = {
    'visibility_timeout': 1500,
    'polling_interval': 60
}
Вернуться на верх