task 레벨에서 정의task가 실패한 경우, 현재 task는 실행 X스케줄이 있는 DAG RUN의 상태의 개념으로 이해해야합니다. 어떤 데이터를 처리함에 있어서, 그 전 날의 processing이 에러를 발생시켰다면, 그 다음 날의 processing을 막고 싶은 job에 대해서 이 옵션을 적용합니다.
depends_on_past가 True라면, 1월 3일에 동작하는 task2는 실행조차되지 않습니다. 즉 status가 없습니다.# Task 2
python_task_2 = PythonOperator(
task_id="python_task_2", python_callable=second_task, depends_on_past=True
)
다시 말해서 depends_on_past는 과거의 DAG RUN에 다음 DAG RUN의 같은 task의 상태를 조정할 수 있게 해줍니다. 이는 과거 DAG RUN의 task를 UI 상에서 success 표시 해주면, 다음 프로세싱을 진행할 수 있게 해줍니다.
task 레벨에서 정의task X에 대해 이전 DAG RUN의 바로 다운 스트림에서 작업이 성공적으로 완료될 때까지 기다렸다가 실행할 수 있습니다.스케줄이 있는 DAG RUN의 상태의 개념으로 이해해야합니다.
wait_for_downstream가 True라면, 1월 3일에 동작하는 task1은 1월 2일에 동작하는 task2가 성공했을 때, 동작하기 때문에 동작 자체가 되질 않습니다. 즉 상태가 없습니다.# Task 1
bash_task_1 = BashOperator(
task_id="bash_task_1",
bash_command="echo 'first task'",
wait_for_downstream=True,
)
다시 말해서 depends_on_past는 과거의 DAG RUN에 다운스트림 task의 상태에 따라서, 다음 DAG RUN의 upstream task를 조정할 수 있게 해줍니다. 이는 과거 DAG RUN의 task를 UI 상에서 success 표시 해주거나, clear를 해서 성공시키면 다시 실행할 수 있습니다.