Airflow 气流中的事件侦听器

Airflow 气流中的事件侦听器,airflow,airflow-scheduler,Airflow,Airflow Scheduler,我有一个任务,将听取某些事件和启动其他功能 此函数(侦听器)订阅卡夫卡主题并永远运行,或者至少直到它获得“停止”事件 将其包装为气流操纵器似乎无法正常工作。 也就是说,如果我发送stop事件,它将不会处理它,或者其他任何相关的内容。 是否可以在气流任务中运行忙循环功能?否,不要在气流任务中运行无限循环 Airflow被设计为一个批处理程序-长时间/无限期运行的任务与它的整个调度和处理模型背道而驰,虽然它可能“工作”,但它将锁定一个任务运行程序槽。您能详细说明一下您的使用案例吗?永远运行的任务将中

我有一个任务,将听取某些事件和启动其他功能

此函数(侦听器)订阅卡夫卡主题并永远运行,或者至少直到它获得“停止”事件

将其包装为气流操纵器似乎无法正常工作。 也就是说,如果我发送stop事件,它将不会处理它,或者其他任何相关的内容。
是否可以在气流任务中运行忙循环功能?

否,不要在气流任务中运行无限循环


Airflow被设计为一个批处理程序-长时间/无限期运行的任务与它的整个调度和处理模型背道而驰,虽然它可能“工作”,但它将锁定一个任务运行程序槽。

您能详细说明一下您的使用案例吗?永远运行的任务将中断DAG的其余任务的运行。气流传感器可用于在任务级别重复轮询超时,但实际上没有像卡夫卡消费者那样从外部推动气流的机制。你可以考虑的一个想法是运行独立于气流的卡夫卡侦听器,然后触发DAG运行。那么,我将在一个订阅卡夫卡主题的气流中执行一个任务,它将运行到卡夫卡主题(“信号”:“停止”)中的某个事件,然后该任务在气流中终止。这是气流中的最后一项任务。我正在考虑将其作为一项微型服务单独提供。我不需要启动dag。任务链:1。将csv文件转储到卡夫卡2中。向主题发出信号,表示我已开始将数据转储到卡夫卡主题中。(信号的主题称为meta)这是侦听器任务3。听这个元主题,了解其他信号(来自另一个微服务)3.1。一旦看到某个事件,我就在一些表上启动聚合,并将结果转储到另一个DB3.2中。倾听停止信号,如果遇到,停止气流中的侦听器任务。我认为气流传感器也应该这样做。