我想知道如果通过HTTP获得请求,airlow任务是否可以执行。我对气流的调度部分不感兴趣。我只想用它来代替芹菜。
所以一个例子就是这样的。
- 用户提交一个表单,请求某些报表。
- 后端接收请求并向用户发送请求已收到的通知。
- 然后,后端使用Airflow计划作业以立即运行。
- 然后,Airflow执行与DAG关联的一系列任务。例如,首先从redshift中提取数据,从MySQL中提取数据,对两个结果集进行一些操作,将它们合并,然后将结果上传到Amazon S3,发送电子邮件。
无论我在网上读到什么,您都可以通过在命令行上执行airflow ...
来运行airlow作业。我想知道是否有一个python api可以执行相同的操作。
谢谢。
Tags:
气流中的一个新选项是实验性,但在最近的1.7和1.8版本中是内置的API端点。这允许您在气流服务器上运行REST服务来侦听端口并接受cli作业。
我自己只有有限的经验,但我成功地运行了测试dag。根据文件:
/api/experimental/dags/<DAG_ID>/dag_runs
为给定的dag id(POST)创建dag运行。这将安排立即运行你想运行的dag。不过,它仍然使用调度程序,等待心跳来查看dag是否正在运行并将任务传递给工作进程。不过,这与CLI的行为完全相同,所以我仍然相信它适合您的用例。
关于如何配置它的文档可以在这里获得:https://airflow.apache.org/api.html
github中的airlow/api/clients下也有一些简单的示例客户机
在这里,Airflow REST API Plugin可以帮你。按照安装插件的说明操作后,只需点击以下url即可:
http://{HOST}:{PORT}/admin/rest_api/api/v1.0/trigger_dag?dag_id={dag_id}&run_id={run_id}&conf={url_encoded_json_parameters}
,用dag的id替换dag id,或者省略run id或指定唯一id,并为conf传递url编码的json(使用触发的dag中需要的任何参数)。下面是一个使用jQuery调用气流api的JavaScript函数示例:
你应该根据你的需要看Airflow HTTP Sensor。你可以用这个触发一个dag。
相关问题 更多 >
编程相关推荐