取消
顯示的結果
而不是尋找
你的意思是:

工作流:運行相關的任務,盡管早些時候任務失敗

sharpbetty
新的貢獻者二世

我有一個計劃任務運行工作流。

那麼這些任務1計算一些參數被依賴的報告任務:任務2。

我希望Task 2報告“失敗”如果Task 1失敗。然而創建一個工作流的依賴意味著Task 2不會運行如果Task 1失敗。

任何建議我如何防止參數共享和依賴任務1 - 2,也允許Task 2火甚至失敗的任務1 ?

編輯:現在附上截圖,顯示任務2跳過任務1的失敗。

2回答2

Kaniz
社區經理
社區經理

@sharpbetty,

一個可能的解決方案是使用任務值傳遞參數從任務1到2,然後使用一塊try-except任務2處理情況1失敗。這裏是實現這個解決方案的步驟:
1。在任務1中,使用 dbutils.jobs.taskValues.set () 命令來設置任務的參數值。例如:
python dbutils.jobs.taskValues。集(鍵=“param1”,值= 42)dbutils.jobs.taskValues。集(鍵=“param2”,值=“foo”)
2。在任務2中,使用 dbutils.jobs.taskValues.get () 命令來檢索參數作為任務值。例如:
python嚐試:param1 = dbutils.jobs.taskValues。get (taskKey = " Task 1 ",關鍵=“param1”) param2 = dbutils.jobs.taskValues。get (taskKey = " Task 1 ",關鍵=“param2”)除了ValueError: #處理情況任務1失敗param1 =沒有param2 =沒有
3所示。使用 param1 param2 任務2中變量生成report.4。如果你想讓Task 2報告“失敗”如果Task 1失敗,您可以添加一個檢查任務2的末尾,看看 param1 param2 沒有一個。如果它們,那麼任務1失敗,任務2應該報告“失敗”。
例如:
python如果沒有或param2 param1沒有:1 #任務失敗,報告“失敗”dbutils.notebook.exit(“失敗”)其他:#任務1成功,生成報告……
Task 2仍然可以運行即使任務1失敗通過任務值函數之間傳遞參數。任務2中的try-except塊允許您處理任務1失敗的情況,仍然生成報告如果Task 1成功。檢查任務2的末尾將使您能夠報告“失敗”如果Task 1失敗。

sharpbetty
新的貢獻者二世

謝謝@Kaniz你的回複!

但是我有點迷路了。我發現,如果Task 1失敗,任務2是跳過,由於依賴。(見截圖)。所以沒有辦法我可以看到執行Task 2在任務1失敗。

我可以斷開的任務(刪除依賴),但我的理解是,如果兩個任務工作流獨立存在,他們會如期火並行,這意味著Task 2不等待任務1的參數生成。

我也想到加載任務到不同的工作流,交錯安排,但我不能通過它們之間的參數在不同流。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map