Kom igångKom igång gratis

Definiera en @task.branch

Efter att ha lärt dig om kraften i villkorsstyrd logik i Airflow vill du testa dekoratorn @task.branch. Du vill köra en annan kodsökväg om det aktuella körningsdatumet representerar ett nytt år (dvs. 2026 jämfört med 2025).

Dag:en är redan definierad åt dig, tillsammans med de berörda uppgifterna. Din uppgift nu är att implementera @task.branch.

Den här övningen är en del av kursen

Introduktion till Apache Airflow i Python

Visa kurs

Övningsinstruktioner

  • Lägg till lämpliga Airflow-datummallarvariabler som parametrar till year_check för att jämföra aktuellt och föregående körningsår.
  • Tilldela current_year och previous_year genom att skära ut de första 4 tecknen från varje datumparameter.
  • Ange beroenden för current_year_task och new_year_task.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

@dag(start_date=datetime(2026,5,1), schedule='@monthly')
def process_yearly_expenses():
  # Create a function to determine if years are different
  @task.branch
  def year_check(____, ____):
      current_year = int(____[0:4])
      previous_year = int(____[0:4])
      if current_year == previous_year:
          return 'current_year_task'
      else:
          return 'new_year_task'

  # Define the dependencies
  branch_task __ current_year_task
  ____ >> new_year_task
Redigera och kör kod