執行工作流程 (Running Workflows)
本頁詳細介紹工作流程搭建完成後與實際運行相關的全部操作:啟動執行、中止執行、在畫布上即時掌握執行狀態、在執行結束後檢查日誌與錯誤歷程,以及儲存您的專案檔案。
運行整個工作流程
位於頂部標頭中央的 Run Workflow (運行工作流程) 按鈕,會從頭到尾完整執行目前工作流程中的所有節點。當已有工作流程正在執行中,或尚未開啟任何工作流程時,該按鈕會自動呈現停用狀態。
| 鍵盤快速鍵 | 對應操作 |
|---|---|
Shift + Cmd/Ctrl + Return |
完整運行整個工作流程 (Run Workflow) |
局部運行單個節點
在 Run Workflow 按鈕旁設有兩個專用按鈕,允許您只執行部分節點圖。這兩個按鈕要求目前必須剛好選中單個節點。當流程已在運行時,Run From Selected 會被停用;而 Run To Selected 依然保持可用 — 具體機制請參閱下文的在執行期間觸發運行節點。
- Run To Selected (運行至所選):計算並解析當前選取的節點 — 以及其上游所有尚未解析的前置相依節點 — 完全不觸碰任何下游節點。這是最標準的迭代開發方式:修改參數後,執行到您當前關注的節點,並立即驗證輸出結果。
- Run From Selected (從所選運行):以當前選取的節點為起點,向下游依序執行流程其餘部分,執行模式與 Run Workflow 相同,只是起始位置被設定在流程的中途。
| 鍵盤快速鍵 | 對應操作 |
|---|---|
Cmd/Ctrl + Return |
運行至所選 (Run To Selected) |
Run From Selected 沒有預設快速鍵,請直接點擊按鈕。與按鈕不同的是,Cmd/Ctrl + Return 快速鍵支援在選取多個節點時同時觸發 — 系統將平行解析並運行至所選的每一個目標節點。
這兩項單節點執行操作亦可在節點右鍵快顯功能表中選取,或在多節點浮動工具列中找到。
在執行期間觸發運行節點
您不必苦苦等待當前工作流程全部跑完才能測試某個節點。在工作流程執行期間,Run To Selected 始終保持可用,被觸發的節點會直接加入正在進行中的執行程序,而無需發起全新執行工作階段。該節點上游所有尚未解析的組件都會自動納入同一次執行中並優先計算,運作邏輯與從頭發起完全相同。
該節點何時真正開始運算,取決於目前執行程序已佔用的資源:
- 在 Parallel (平行) 執行模式下,只要執行緒池有空閒插槽,該節點便會立即開始運算。同時間可並行運行的節點數量由
max_nodes_in_parallel設定決定(預設為 5)。 - 在 Sequential (序列) 執行模式下,一次僅執行一個節點,因此您點擊運行的節點將在當前節點完成運算後立即接力啟動。
兩種執行模式的詳細介紹請參閱組態配置 (Configuration)。
以下兩種邊界情況值得特別注意:
- 若目前執行處於暫停狀態:該節點會被追加至執行隊列,但不會立即啟動。當您單步前進或點擊繼續執行時才會開始運算。
- 若該節點已經是目前執行的一部分 — 無論是已經執行完成、正在運算中,還是在相依隊列中排隊等待 — 系統會明確拒絕重複觸發,並提示該節點已在執行中。若希望重頭再來,請先手動取消目前執行。
Run Workflow 與 Run From Selected 依然要求工作流程處於閒置狀態;在當前執行完全結束前,這兩者始終維持停用。
中止執行
在工作流程執行期間,原先的執行按鈕區域會被替換為 Cancel Run (取消運行) 按鈕。點擊即可中止運算中的執行程序。在取消請求處理期間,按鈕會短暫顯示 Cancelling… (正在取消...)。
取消執行也是關閉 Cannot Save While Flow is Running (工作流程執行中無法儲存) 對話方塊的便捷手段(參閱下文儲存工作流程)— 該對話方塊內建了一個 Cancel Flow 按鈕,點擊效果完全相同。
在畫布上掌握執行狀態
當節點參與當前輪次的執行時,其標頭會即時展示狀態徽章:
| 狀態徽章 | 具體狀態意義 |
|---|---|
| Running (運行中)(橘色,旋轉動畫) | 該節點目前正在積極運算與解析中。 |
| Resolved (已完成)(綠色) | 該節點已成功運算結束。 |
| Error (錯誤)(紅色) | 該節點執行失敗。將滑鼠懸停在徽章上可查看完整錯誤訊息。 |
| Unresolved (未解析)(藍色) | 該節點在此次運行中尚未執行。 |
節點名稱旁邊顯示的小星號也表示其處於未解析狀態,無論它是否參與當前執行。執行結束後,報錯的節點會持續保留紅色的 Error 徽章,方便您事後快速定位並檢視錯誤訊息,無需費力回憶是哪一個節點出現問題。
執行日誌面板 (The Logs panel)
右側側邊欄的 Execution Log (執行日誌) 面板彙整了工作流程運行期間引擎產生的所有日誌訊息 — 包含底層引擎系統訊息以及節點本身印出的日誌,並在可行時自動標註產生該日誌的節點名稱徽章。
在面板中您可以進行以下操作:
- Log Level Visibility (日誌層級可視性):下拉選單用於設定引擎本身的日誌詳細程度 (
DEBUG,INFO,WARNING,ERROR,CRITICAL)。這從根本上改變引擎產生的日誌量,而不僅僅是過濾顯示。 - Filter (篩選):一排日誌層級開關按鈕(僅能選擇等於或高於目前詳細程度的層級),允許您在不改變引擎輸出 verbosity 的前提下,自訂在面板中顯示或隱藏特定層級的日誌。
- Download (下載)(下載圖示):將當前篩選後的日誌儲存為
.txt檔案,每條日誌一行並附帶時間戳記。 - Clear (清除)(橡皮擦圖示):清空目前的日誌清單。
- 齒輪圖示可開啟 Log Settings,在其中可自訂面板在記憶體中保留的最大日誌條目數量。
當有新日誌產生時,面板會自動滾動至最底部最新記錄。
錯誤歷程記錄 (Error History)
頂部標頭還設有 Error History 按鈕(帶有數字徽章的三角形/圓形圖示),它獨立於任何單次執行流程 — 而是累積記錄您整個工作階段期間所遇到的所有錯誤與權限拒絕事件,不局限於當前正在執行的單一工作流程。
點擊可開啟下拉選單,按時間先後列出每項錯誤的相對發生時間與來源。點擊任一項目可在強制回應視窗 (Modal) 中閱讀完整錯誤詳情。Clear All 可清空錯誤清單;單條記錄旁邊的 × 圖示可單獨移除該項目。
儲存工作流程
每當存在未儲存的變更時(無論是編輯了圖形結構,還是從未儲存到磁碟上的新建立流程),頂部標頭的工作流程名稱末尾都會顯示一個星號 (*)。
- Save (儲存) (
Cmd/Ctrl+S):就地原檔覆寫儲存。若是從未儲存過的新工作流程,將開啟 Save Workflow 對話方塊以供命名。 - Save As (另存新檔) (
Cmd/Ctrl+Shift+S):開啟 Save Workflow As… 對話方塊,以新名稱另存獨立副本。官方範本工作流程一律強制透過 Save As 另存 — 系統禁止直接覆寫原廠範本檔案。 - Save As New Version (另存為新版本) (
Option/Alt+Shift+S,需引擎支援版本化儲存):將當前狀態寫入新的版本化檔案(如my_workflow_v002.py等)並自動切換至該新版本,原先的舊版本在磁碟上維持完好。
在工作流程執行期間,上述三種儲存操作均會被系統鎖定。此時嘗試儲存會彈出 Cannot Save While Flow is Running 對話方塊,提示您必須先等待流程結束或手動取消執行,方塊內亦直接附帶取消執行的快捷按鈕。
儲存過程中,螢幕底部會短暫浮現 Saving workflow… 提示浮層。
自動儲存 (Auto-save)
前往 Settings → Editor Settings → Auto-Save Settings 可開啟自動儲存功能,讓您無需時時掛念手動按下 Cmd/Ctrl+S。啟用後可設定:
- Auto-Save Interval (seconds):編輯器自動儲存的時間間隔秒數。
- Auto-Save Notifications:每次自動儲存時是否彈出 Toast 提示通知。
自動儲存僅在「已存在於磁碟上且有未儲存變更」的工作流程中生效;在工作流程執行期間,自動儲存會自動默默跳過,套用與手動儲存相同的防衝突保護機制,但不會彈出中斷對話方塊。
開發者模式 (Developer Mode)
前往 Settings → Editor Settings → Developer Mode 可開啟開發者模式,它提供了一系列進階輔助資訊,幫助您深入理解引擎為何會如此評估您的工作流程,而不僅僅是看到節點是否成功。
啟用後,每個節點下方都會增加一個可折疊的 Developer Mode 狀態列,精確列出其上游資料相依節點(即實際向其傳遞資料的節點,排除純流程控制連線),每個相依項均附帶即時解析狀態圖示(✓ 已解析,↻ 解析中,✗ 錯誤,○ 未解析)。點擊相依標籤可將畫布平移並置中至該相依節點,在龐大圖形中追蹤過期陳舊數值的來源時極具價值。
開發者模式還會在節點的右鍵快顯功能表中加入 Mark as unresolved (標記為未解析) 選項。利用它可以在不變更節點本身任何配置的前提下,強制將該節點及其下游的所有相依組件重設回未解析狀態。這是讓引擎在下一次點擊 Run Workflow 或 Run To Selected 時,即使輸入端沒有任何改動,也強制重新運行該節點的最快方式(例如當您修正了節點所依賴的外部磁碟檔案時)。