Alright so, there's a PR for this. https://github.com/apache/airflow/pull/54284
What it does is add last_queueing_decision to TaskInstance, and it is updated for every TI that comes out of the query in `_executable_task_instances_to_queued` which cannot be queued. Then on subsequent scheduling loops, such TIs would go to the bottom of the list. I remove all the other "starved ____" logic, which did some confusing looping and conditionally added to the query filters. I think with the sorting approach, we shouldn't really need any of that. On Fri, Aug 8, 2025 at 12:15 PM Daniel Standish < daniel.stand...@astronomer.io> wrote: > I think it will be very beneficial to remove last_scheduling_decision from >> dag_run. With a DAG having dynamic task group with hundreds of dynamic >> tasks, each update to dag_run for each dynamic task seems redundant >> > > Some confusion here I think. > > 1. last_scheduling_decision serves a different purpose. It is for the > scheduling process, not the queueing process. Not proposing any changes to > that. > 2. if we added a last_queueing_decision to DR, we could update it just > once per loop. but i'm proceeding with something on the TI for now. > > >