运行 使用 Airflow 的 .EXE 和 Powershell 任务
Run .EXE and Powershell tasks with Airflow
我们的系统基本上只是 Windows 服务器 运行 将 C# 和 Powershell 应用程序与 MS SQL 服务器结合使用。我们有一个内部 WorkflowManagement 解决方案,能够 运行 执行 EXE/BAT/PS1 甚至调用 DLL 函数的任务。
现在我正在评估 Apache Airflow 是否对我们来说是更好的解决方案。到目前为止,我天真的计划是在 Linux 机器上 运行 气流调度器,然后让消费者 运行 在 Windows 机器上。但是我如何将消费者设置为 运行 例如 .exe 任务?
我是否需要创建一个接受 HTTP 调用然后执行 .Exe 文件的包装服务?
我认为你提到的消费者在airflow中被称为"workers"。典型的工人 运行 执行者 运行 Windows。
理论上你可以在你的 windows 机器上安装一个 ssh 服务器,然后在那里使用 SSHExecuteOperator
到 运行 exe 命令等。
这可能比 HTTP 实现更好,因为您在 airflow 中的任务将保持 "running" 而 ssh 命令正在 运行ning 并相应地自动转到成功或失败。使用 HTTP 实现,如果您想与气流很好地集成,则需要自己实现此功能。
我在
中回答过类似的问题
Airflow Scheduler fails to execute Windows EXE via WSL
我们的系统基本上只是 Windows 服务器 运行 将 C# 和 Powershell 应用程序与 MS SQL 服务器结合使用。我们有一个内部 WorkflowManagement 解决方案,能够 运行 执行 EXE/BAT/PS1 甚至调用 DLL 函数的任务。
现在我正在评估 Apache Airflow 是否对我们来说是更好的解决方案。到目前为止,我天真的计划是在 Linux 机器上 运行 气流调度器,然后让消费者 运行 在 Windows 机器上。但是我如何将消费者设置为 运行 例如 .exe 任务?
我是否需要创建一个接受 HTTP 调用然后执行 .Exe 文件的包装服务?
我认为你提到的消费者在airflow中被称为"workers"。典型的工人 运行 执行者 运行 Windows。
理论上你可以在你的 windows 机器上安装一个 ssh 服务器,然后在那里使用 SSHExecuteOperator
到 运行 exe 命令等。
这可能比 HTTP 实现更好,因为您在 airflow 中的任务将保持 "running" 而 ssh 命令正在 运行ning 并相应地自动转到成功或失败。使用 HTTP 实现,如果您想与气流很好地集成,则需要自己实现此功能。
我在
中回答过类似的问题Airflow Scheduler fails to execute Windows EXE via WSL