Python 理解apache中的树视图
我按原样设置dag,唯一的变化是我已将dag设置为以5分钟的间隔运行,开始日期为2017-12-17 T13:40:00 UTC。我在13:40之前启用了dag,因此没有回填,我的机器在UTC上运行。dag按预期运行(即从UTC 13:45开始每隔5分钟运行一次) 现在,当我转到树视图时,我无法理解图形。总共有3项任务。”sleep'(t2)将上游设置为“printdate”(t1),而“templated”(t3)也将上游设置为“printdate”(t1)。那么为什么图形显示两个“打印日期”??它们是该任务的独立任务实例吗?如果是,那么如何确保只有1个t1任务实例运行(菱形模式)。还有4个绿色矩形框(带有两个“printdate”),而不是3个Python 理解apache中的树视图,python,workflow,airflow,apache-airflow,Python,Workflow,Airflow,Apache Airflow,我按原样设置dag,唯一的变化是我已将dag设置为以5分钟的间隔运行,开始日期为2017-12-17 T13:40:00 UTC。我在13:40之前启用了dag,因此没有回填,我的机器在UTC上运行。dag按预期运行(即从UTC 13:45开始每隔5分钟运行一次) 现在,当我转到树视图时,我无法理解图形。总共有3项任务。”sleep'(t2)将上游设置为“printdate”(t1),而“templated”(t3)也将上游设置为“printdate”(t1)。那么为什么图形显示两个“打印日期”
# t1, t2 and t3 are examples of tasks created by instantiating operators
t1 = BashOperator(
task_id='print_date',
bash_command='date',
dag=dag)
t2 = BashOperator(
task_id='sleep',
bash_command='sleep 5',
retries=3,
dag=dag)
templated_command = """
{% for i in range(5) %}
echo "{{ ds }}"
echo "{{ macros.ds_add(ds, 7)}}"
echo "{{ params.my_param }}"
{% endfor %}
"""
t3 = BashOperator(
task_id='templated',
bash_command=templated_command,
params={'my_param': 'Parameter I passed in'},
dag=dag)
t2.set_upstream(t1)
t3.set_upstream(t1)
第二,为什么dag上的时间(绿色圆圈)显示为8.40,8.45-?那是什么时间/时区?我已将dag的开始日期设置为13.40,我的机器设置为UTC
是的,它们是独立的任务。要确保只有一个
打印日期
,您可以执行以下操作:
t1 >> t2 >> t3
而不是
t2.set_upstream(t1)
t3.set_upstream(t1)
您可以根据您的工作流程更改订单
2.在我的机器上,这些绿点以UTC显示计划运行的时间。您确定不在您的数据库时区中吗?它们不是单独的实例。你可以看到:
print\u date
的单个实例的持续时间通常,如果不复制节点,就无法将DAG映射到树视图,就像它们所做的那样 那些认为
睡眠
和模板化
的人应该从单个打印日期
任务(在树状视图中)分支出来,应该阅读