cmarteepants commented on issue #55521:
URL: https://github.com/apache/airflow/issues/55521#issuecomment-3310082823

   @KatalKavya96 are you still in a position to do the UI guide? In case you 
need it, here's a copy of the dag that was used to simulate the dag runs. Let 
me know if you need help or want me to take it over. 
   
   ``` 
   """
   ## Use chain() and chain_linear() to set complex task dependencies
   
   This DAG shows more complex use of `chain()` and `chain_linear()` to set 
task dependencies.
   chain_linear() was added in Airflow 2.7.
   """
   
   from airflow.sdk import dag, task, chain_linear, chain
   import random
   
   @dag(
       tags=["chain()", "chain_linear()", "dependency_functions", "toy", 
"core"],
   )
   def toy_chain_linear_vs_chain_complex():
       @task
       def start_chain_linear():
           print(f"Start Chain Linear: {random.randint(1, 100)}")
   
       @task
       def end_chain_linear():
           print(f"End Chain Linear: {random.randint(1, 100)}")
   
       @task
       def start_chain():
           print(f"Start Chain: {random.randint(1, 100)}")
   
       @task
       def end_chain():
           print(f"End Chain: {random.randint(1, 100)}")
   
       @task
       def empty_1():
           if random.randint(1, 100) % 2 == 0:
               raise Exception("Random failure")
           print(f"Empty 1: {random.randint(1, 100)}")
   
       @task
       def empty_2():
           print(f"Empty 2: {random.randint(1, 100)}")
   
       @task
       def task_with_random_number(task_name):
           print(f"{task_name}: {random.randint(1, 100)}")
   
       t0 = task_with_random_number.override(task_id="chain_linear_t0")("Chain 
Linear T0")
       t1 = task_with_random_number.override(task_id="chain_linear_t1")("Chain 
Linear T1")
       t2 = task_with_random_number.override(task_id="chain_linear_t2")("Chain 
Linear T2")
       t3 = task_with_random_number.override(task_id="chain_linear_t3")("Chain 
Linear T3")
       t4 = task_with_random_number.override(task_id="chain_linear_t4")("Chain 
Linear T4")
       t5 = task_with_random_number.override(task_id="chain_linear_t5")("Chain 
Linear T5")
       t6 = task_with_random_number.override(task_id="chain_linear_t6")("Chain 
Linear T6")
       t7 = task_with_random_number.override(task_id="chain_linear_t7")("Chain 
Linear T7")
       t8 = task_with_random_number.override(task_id="chain_linear_t8")("Chain 
Linear T8")
       t9 = task_with_random_number.override(task_id="chain_linear_t9")("Chain 
Linear T9")
       t10 = task_with_random_number.override(task_id="chain_t10")("Chain T10")
       t11 = task_with_random_number.override(task_id="chain_t11")("Chain T11")
       t12 = task_with_random_number.override(task_id="chain_t12")("Chain T12")
       t13 = task_with_random_number.override(task_id="chain_t13")("Chain T13")
       t14 = task_with_random_number.override(task_id="chain_t14")("Chain T14")
       t15 = task_with_random_number.override(task_id="chain_t15")("Chain T15")
       t16 = task_with_random_number.override(task_id="chain_t16")("Chain T16")
       t17 = task_with_random_number.override(task_id="chain_t17")("Chain T17")
       t18 = task_with_random_number.override(task_id="chain_t18")("Chain T18")
       t19 = task_with_random_number.override(task_id="chain_t19")("Chain T19")
   
       chain_linear(
           start_chain_linear(),
           [t0, t1],
           [t2, t3, t4],
           [t5, t6, t7],
           [t8, t9],
           end_chain_linear(),
       )
   
       # chain cannot set dependencies between lists of different lengths!
       chain(
           start_chain(),
           [t10, t11],
           empty_1(),
           [t12, t13, t14],
           [t15, t16, t17],
           empty_2(),
           [t18, t19],
           end_chain(),
       )
   
       end_chain_linear() >> start_chain()
   
   
   toy_chain_linear_vs_chain_complex()
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to