繁体   English   中英

捕捉杀死信号到 Airflow Dags

[英]Catching kill signals to Airflow Dags

tl;博士

自定义运算符执行另一个运行一段时间的子流程(devops 管道)。 如果任务现在被手动中断,子进程仍然启动并运行。 是否有可能捕获信号,然后将其也交给子流程?


触发器执行 Azure Devops 管道,通过自定义运算符 class 完成。它运行后请求以启动 pipe,然后等待(戳)它完成。

如果 dag 或任务在此期间被终止(用户在 UI 中中断进程),则 Azure pipe 仍然运行而不会被取消。 到目前为止,我的解决方案是编写异步。 function 检查 Dag(任务)是否仍然可用(或已删除)。

不过,更受欢迎的是一个相当原生的 Airflow 解决方案。

注意:我使用的是 1.10.15,不能升级到 2.x

是的。 您的自定义运算符应覆盖on_kill中的 on_kill 方法:

    def on_kill(self) -> None:
        """
        Override this method to cleanup subprocesses when a task instance
        gets killed. Any use of the threading, subprocess or multiprocessing
        module within an operator needs to be cleaned up or it will leave
        ghost processes behind.
        """

它一直在那里 - 即使在 Airflow 1.10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM