自動化

手動觸發

能夠按需執行排程或定義好的任務以進行測試。

手動觸發

這是什麼

能夠按需執行排程或定義好的任務以進行測試。

白話解釋

維護人員可以在客人稀少的早晨手動讓電梯在各樓層間運行,只是為了確認門和煞車運作正常,而不是等到下一位乘客按鈕才發現問題。手動觸發為 Hermes 任務提供了同樣的測試方式:不用等待排程或外部事件自行到來,而是立即執行完全相同的任務,並觀察它的實際行為。

為什麼重要

測試排程任務或事件驅動任務,而無需等待真實觸發條件發生——立即執行、查看輸出、確認行為——正是手動觸發存在的目的。它是編寫 cron 任務與真正信任它能無人值守運行之間的實用橋樑,因為沒有人想等到早上 6 點才發現每日簡報任務有 bug。它在運維方面也很有用,當需要立即檢查某些事項時,可以讓倉儲監控或看板執行任務在正常節奏之外運行。

運作方式

使用 action runrun_nowtrigger 呼叫 cronjob 工具(tools/cronjob_tools.py)不僅僅是標記一個任務等待下一次觸發——它會立即執行。Hermes 首先嘗試透過 claim_job_for_fire 原子性地認領該任務——這是 Hermes 多機器外部排程器觸發路徑使用的相同比較並交換機制——它會檢查任務未被暫停或停用,蓋上新的認領戳記,並推進其下一次排程執行時間,這樣後續的觸發就不會再選中同一個觸發。如果任務已暫停或停用,認領會失敗,工具會直接報告這個狀況,而不是假裝執行了一次。一旦認領成功,執行會交給 run_one_jobcron/scheduler.py)。