前言¶
在 DSH 的開發與運維場景中,與 Hermes 的交互常涉及異步任務分發。如果直接調用,容易出現狀態同步滯後或併發衝突。dsh-task-queue 提供了一個隊列中樞,通過文件狀態管理(queue.json)來協調 DSH 與 Hermes 之間的任務分發、執行與反饋。
是什麼¶
這是一個 DSH↔Hermes 協作的緩存梯隊任務隊列,由 nicecx 維護。它以 queue.json 爲單一真相源,利用租約/認領模型管理任務生命週期,並提供了防餓死機制與互斥鎖,確保任務調度的有序性。
核心能力¶
- 單一真相源:
queue.json是任務狀態的唯一可信來源,所有操作基於此文件。 - 三級優先級隊列:任務分爲
reset(重啓)、approve(審批)、review(評審)三個層級,優先級順序爲 reset > approve > review。 - 租約/認領模型:消費端(Hermes 側)通過認領任務來執行,避免重複處理。
- 防餓死與原子鎖:支持優先級 aging 算法,防止低優先級任務被阻塞;配合原子 busy-mutex 確保高併發下的安全。
- 消費端:由 Hermes 側的 cron 定時任務(監控門控)負責出隊執行。
典型用法¶
本插件與應用層插件協議聯動,典型流程如下:
dsh-auto-approver(審批)──┐
dsh-design-review(評審)──┼──入隊──▶ dsh-task-queue ──▶ 消費端 ──▶ Hermes
dsh-reset-handoff(重啓)──┘
- 審批流程:
dsh-auto-approver將請求放入approvetier。審批通道採用快道同步直調,並共用 busy 鎖。 - 評審流程:
dsh-design-review將請求放入reviewtier。消費端出隊後寫入單槽request.json,Hermes 審覈後按 sessionId 路由。 - 重啓流程:
dsh-reset-handoff將請求放入resettier(最高優先級)。任務經過門禁後,調用reset_agent.py。
共享機制¶
插件提供了一套共享機制以確保環境一致性:
* 互斥鎖:共享 .hermes-busy 文件,用於序列化 Hermes 的調用,防止併發衝突。
* 單一編號源:作爲 requestId 的單一編號源,在 docs/ 掃描等場景中保證編號唯一。
安裝與啓用¶
該插件遵循 MIT 許可證。由於未提供具體的安裝命令,建議直接查看源碼倉庫進行集成。
注意事項¶
- 運行權限:插件以當前 DSH 進程的權限運行,部署前請檢查源碼邏輯與許可證。
- 容錯策略:插件採用 fail-closed 策略,異常情況下會阻止任務繼續流轉。
- 文檔參考:詳細的協作契約請參考「二·五 架構總覽」(
~/.dsh/DSH-HERMES-CONTRACT.md)。