2017-04-26 196 views
2

我們的系統基本上只是運行C#和Powershell應用程序以及MS SQL Server的Windows服務器。我們有一個內部的WorkflowManagement解決方案,能夠運行執行EXE/BAT/PS1的任務,甚至可以調用DLL函數。使用Airflow運行.EXE和Powershell任務

現在我正在評估Apache Airflow是否是更好的解決方案。我迄今爲止的天真計劃是在Linux機器上運行氣流調度程序,然後讓消費者在Windows機器上運行。但是,我將如何設置使用者以運行例如.exe任務?

我是否需要創建一個採用HTTP調用並執行.Exe文件的Wrapper-Service?

回答

2

我認爲你提到的消費者在氣流中被稱爲「工人」。典型的工作人員運行一個不能在Windows上運行的執行程序。

理論上你可以在你的windows上安裝一個ssh服務器,然後使用SSHExecuteOperator在那裏運行exe命令等。

這可能會比HTTP impl效果更好,因爲在ssh命令運行時氣流中的任務將保持「運行」狀態,並自動成功或失敗。使用HTTP impl,如果您想要與氣流很好地集成,則需要自己實現此功能。

+3

謝謝你的回答!我發現了另一個,可能更好的解決方案:pywinrm! https://pypi.python.org/pypi/pywinrm通過這個,你可以通過python使用Windows遠程PowerShell。所以我通過python定義一個任務並導入pywinrm庫,然後我可以執行所有我想要的命令,比如調用一個exe文件 – hmrc87