เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การ Trigger Child Dag

คุณสังเกตว่า workflow หลายตัวมีส่วนประกอบที่คล้ายกัน จึงตัดสินใจแยก task ที่ใช้ร่วมกันออกมาเป็น Dag ของตัวเอง วิธีนี้ช่วยให้สามารถรัน component เหล่านั้นได้ตามต้องการ โดยไม่ต้องดูแลโค้ดซ้ำหลายชุด คุณจึงเลือกใช้วิธีเรียก child Dag ผ่าน task ใน workflow ปัจจุบัน

ได้นำเข้า dag, task และ datetime ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Apache Airflow เบื้องต้นด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นำเข้า operator ที่ใช้สำหรับเริ่มต้น Dag จากภายใน workflow
  • ตั้งค่า operator ให้ trigger Dag ชื่อ child_pipeline
  • ตรวจสอบให้แน่ใจว่า parent Dag รอจนกว่า Dag ที่ถูก trigger จะทำงานเสร็จก่อนจึงดำเนินการต่อ
  • กำหนดความถี่ที่ operator จะตรวจสอบว่า child Dag เสร็จสิ้นหรือยัง

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Import TriggerDagRunOperator
from airflow.providers.standard.operators.trigger_dagrun import ____

@dag(start_date=datetime(2026, 1, 1))
def parent_orchestrator_dag():
    
    # Trigger child_pipeline and wait for it to complete
    trigger_child = TriggerDagRunOperator(
        task_id="trigger_child_pipeline",
        trigger_dag_id="____",   
        ____=True,          
        ____=30,                  
        conf={"source": "s3://my-bucket/raw/"})

    validate() >> trigger_child >> post_trigger_summary()

parent_orchestrator_dag()
แก้ไขและรันโค้ด