Why is AIRFLOW__CELERY__TASK_ACKS_LATE True by default? #57348
Unanswered
sdaberdaku
asked this question in
Q&A
Replies: 1 comment
-
|
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.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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