Airflow TaskFlow: Difference between revisions
Jump to navigation
Jump to search
Line 5: | Line 5: | ||
* [[Airflow_Concepts#TaskFlow|Airflow Concepts]] | * [[Airflow_Concepts#TaskFlow|Airflow Concepts]] | ||
=Overview= | =Overview= | ||
Tasks can be declared as Python functions annotated with <code>@task</code>. | |||
=Programming Model= | =Programming Model= | ||
Functions annotated with <code>@task</code> are executed when the corresponding [[Airflow_Concepts#Task_Instance|task instance]] is executed. | Functions annotated with <code>@task</code> are executed when the corresponding [[Airflow_Concepts#Task_Instance|task instance]] is executed. |
Revision as of 03:47, 16 July 2022
External
- https://airflow.apache.org/docs/apache-airflow/stable/concepts/taskflow.html
- https://airflow.apache.org/docs/apache-airflow/stable/tutorial_taskflow_api.html
Internal
Overview
Tasks can be declared as Python functions annotated with @task
.
Programming Model
Functions annotated with @task
are executed when the corresponding task instance is executed.
from airflow.decorators import dag, task
from datetime import datetime
@dag(
[...]
)
def some_dag():
@task
def task_a(ti=None):
print(f"executing task A, task instance {ti}")
@task
def task_b(ti=None):
print(f"executing task B, task instance {ti}")
task_a() >> task_b()
If the function's first argument is ti
, a reference to the corresponding task instance it will be passed with it.