Why is AIRFLOW__CELERY__TASK_ACKS_LATE True by default? #57348
Replies: 2 comments
-
|
I had this problem on Airflow 3.1.7 as well, and it manifested in the logs as: Took me a very long time to debug it, but setting I am using Redis as a broker, which I believe is an important detail in this instance as well. By default, anyone using this setup will not be able to run jobs longer than 1 hour (as the default visibility_timeout is 3600). |
Beta Was this translation helpful? Give feedback.
-
|
This PR fixed the ambiguity on the official documentation. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello all,
I have a question regarding the
AIRFLOW__CELERY__TASK_ACKS_LATEconfiguration. According to the documentation:https://airflow.apache.org/docs/apache-airflow-providers-celery/stable/configurations-ref.html#task-acks-late
This description makes it seem like setting this variable to
Truewill effectively force Celery to wait until a task is finished before a new task instance is assigned, which is the opposite of what the celery documentation states.https://docs.celeryq.dev/en/stable/reference/celery.app.task.html#celery.app.task.Task.acks_late
If the
visibility_timeoutis exceeded, and the task is not acknowledged yet, it will be picked up by another celery worker, regardless of whether the original run has completed or not. I think the default value of this configuration should be set toFalseinstead, since Airflow has its own retry mechanism of detecting failed/zombie tasks and rescheduling them.Beta Was this translation helpful? Give feedback.
All reactions