自動化

手動觸發

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

概念專屬圖版手動觸發hx-graph-context-concept-manual-triggering正在載入視覺預覽…
以原始尺寸檢視

手動觸發

這是什麼

讓既有工作不必等待下一個排程時間,立即依正式路徑執行一次以便測試。

白話解釋

維護人員可以在清晨手動讓電梯行駛,只為確認門與煞車正常,而不用等下一位乘客才發現故障。手動觸發讓 Hermes 工作也能這樣試跑:不等排程時間或外部事件到來,現在就執行同一份工作並觀察實際結果。

為什麼重要

手動觸發能在真正條件到來前測試排程或事件驅動工作:立即執行、檢查輸出並確認行為。它是從撰寫 cron 工作到放心讓其無人值守執行之間的重要橋梁,因為沒有人想等到早上 6 點才發現每日簡報有錯。營運上也可用它讓儲存庫監控或看板工作在正常週期之外立即檢查。

運作方式

runrun_nowtrigger 動作呼叫 cron 工作工具(tools/cronjob_tools.py)時,工作會立即執行,不是只標記到下一個排程週期。Hermes 先透過 claim_job_for_fire 以原子操作領取工作;這與多機器外部排程器的觸發路徑採用同一套比較並交換(compare-and-swap)機制。它會確認工作未暫停或停用、寫入新領取紀錄,並推進下次排程時間,避免後續排程週期重複取得同一次執行。暫停或停用時,領取會失敗並明確回報。領取成功後交給 run_one_jobcron/scheduler.py),沿用排程器相同的執行、儲存、傳送與標記流程,所以提示、傳送目標、last_run_atlast_status 紀錄都和正式排程一致。

具體範例

建立預定送到 Discord 頻道的監控工作後,你不確定傳送設定是否正確,因此不等上午 9 點,直接呼叫 cronjob(action='run', job_id='repo-watch')。Hermes 領取工作、執行原本排程會使用的提示,並透過相同 Discord 設定傳送。若沒有訊息出現,就檢查 last_delivery_error,修正頻道 ID 後再次觸發,確認成功才信任正式排程。

如何連結

「手動觸發」屬於「自動化」系列。最直接相關的概念包括:「監控任務」、「暫停與恢復」、「代理執行環境」、「個人作業系統」。這些連結描述教學關係,不取代來源證據。

來源證據

  • toolsets.py#<file> — 結構性檔案對應;只確認來源檔關聯,不推論未列出的內部行為。

工作流程

相關文章

相關筆記