Bir @task.branch tanımla
Airflow içinde koşullu mantığın gücünü öğrendikten sonra, @task.branch dekoratörünü denemek istiyorsun. Geçerli yürütme tarihi yeni bir yılı temsil ediyorsa (ör. 2026 vs 2025) farklı bir kod yolu çalıştırmak istiyorsun.
Dag ve ilgili görevler senin için tanımlandı. Şu anki görevin @task.branch'i uygulamak.
Bu egzersiz, kursun bir parçasıdır
Python ile Apache Airflow’a Giriş
Egzersiz talimatları
- Geçerli ve önceki yürütme yılını karşılaştırmak için uygun Airflow tarih şablonu değişkenlerini
year_checkfonksiyonuna parametre olarak ekle. - Her tarih parametresinin ilk 4 karakterini dilimleyerek
current_yearveprevious_yeardeğerlerini ata. current_year_taskvenew_year_taskiçin bağımlılıkları ayarla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
@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