所以我的问题是:airflow,Since执行一个Python文件,该文件调用php脚本(Symfony)来执行一个创建的命令。该命令本身运行良好。后者在Airflow中的执行也非常好(通过Airflow的可视化显示:运行成功)。
当我在symfony命令(exit(1),throw,...)中引发错误,以查看Airflow的React时,它总是显示成功。
下面是python代码:
dag = DAG(
'name fill python',
default_args={
'start_date': datetime(2022, 8, 1),
},
max_active_runs = 1,
description='one description',
schedule_interval='0 7 * * 1',
tags = ["tag1", "tag2"]
)
t1 = SimpleHttpOperator(
http_conn_id='name fill json',
task_id='name task',
endpoint='url route symfony',
method='GET',
data={},
headers={},
dag=dag
)
t1
Symfony命令的路由:
public function ImportMasse(string $csv, KernelInterface $kernel)
{
$application = new Application($kernel);
$application->setAutoExit(false);
$input = new ArrayInput([
'command' => 'Import',
'class_name' => $csv,
]);
$output = new BufferedOutput();
$application->run($input, $output);
if(stristr($output->fetch(), '0 errors')){
return new Response(true);
}else{
return new Response(false);
}
}
谢谢你回来。
1条答案
按热度按时间eit6fx6z1#
SimpleHttpOperator
可让您针对requests回应对象执行检查。如果检查传回false,则会引发AirflowException
,运算子会失败。示例: