每当我尝试运行DAG时,它都会获得成功状态,但无法运行任务。 首次运行时,效果很好
trigger_controller_dag.py:
public class test {
public static void main(String args[]) {
JFrame frame = new JFrame();
JLabel label = new JLabel("<html><div style='width: 100px; background-color: red;'>test</div>");
frame.getContentPane().add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 200);
frame.setVisible(true);
}
}
trigger_target_dag.py:
def conditionally_trigger(context, dag_run_obj):
c_p = context['params']['condition_param']
if context['params']['condition_param']:
dag_run_obj.payload = {'message': context['params']['message']}
pp.pprint(dag_run_obj.payload)
return dag_run_obj
dag = DAG(
dag_id='example_trigger_controller_dag',
default_args={
"owner": "airflow",
"start_date": datetime.utcnow(),
},
schedule_interval='@once',
)
trigger = TriggerDagRunOperator(
task_id='test_trigger_dagrun',
trigger_dag_id="example_trigger_target_dag",
python_callable=conditionally_trigger,
params={'condition_param': True, 'message': 'Hello World'},
dag=dag,
)
在运行DAG时,出现以下错误, 依赖性“任务实例状态”失败:任务处于“成功”状态,该状态不是有效的执行状态。必须清除任务才能运行
答案 0 :(得分:0)
尝试使用schedule_interval='@once'
代替schedule_interval=None
。
@once
表示它将只运行一次。
答案 1 :(得分:0)
两个DAGS中的start_date
变量都是动态的,可能会引起问题'start_date': datetime.utcnow()
。不建议将它们设置为动态开始,否则会导致错误。
尝试将其设置为静态开始日期,例如'start_date': datetime(2019, 5, 29) #year month day
我们建议不要将动态值用作开始日期,尤其是 datetime.now(),因为它可能会令人困惑。任务被触发 一旦周期结束,理论上@hourly DAG就永远不会 now()沿现在移动到一个小时后。
与此相关的另一个SO问题:why dynamic start causes issues