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 задачи для приложения
При использовании 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
}
