dsh-task-queue:DSH 與 Hermes 協作的任務隊列

前言

在 DSH 的開發與運維場景中,與 Hermes 的交互常涉及異步任務分發。如果直接調用,容易出現狀態同步滯後或併發衝突。dsh-task-queue 提供了一個隊列中樞,通過文件狀態管理(queue.json)來協調 DSH 與 Hermes 之間的任務分發、執行與反饋。

是什麼

這是一個 DSH↔Hermes 協作的緩存梯隊任務隊列,由 nicecx 維護。它以 queue.json 爲單一真相源,利用租約/認領模型管理任務生命週期,並提供了防餓死機制與互斥鎖,確保任務調度的有序性。

核心能力

  1. 單一真相源:queue.json 是任務狀態的唯一可信來源,所有操作基於此文件。
  2. 三級優先級隊列:任務分爲 reset(重啓)、approve(審批)、review(評審)三個層級,優先級順序爲 reset > approve > review。
  3. 租約/認領模型:消費端(Hermes 側)通過認領任務來執行,避免重複處理。
  4. 防餓死與原子鎖:支持優先級 aging 算法,防止低優先級任務被阻塞;配合原子 busy-mutex 確保高併發下的安全。
  5. 消費端:由 Hermes 側的 cron 定時任務(監控門控)負責出隊執行。

典型用法

本插件與應用層插件協議聯動,典型流程如下:

dsh-auto-approver(審批)──┐
dsh-design-review(評審)──┼──入隊──▶ dsh-task-queue ──▶ 消費端 ──▶ Hermes
dsh-reset-handoff(重啓)──┘
  1. 審批流程:dsh-auto-approver 將請求放入 approve tier。審批通道採用快道同步直調,並共用 busy 鎖。
  2. 評審流程:dsh-design-review 將請求放入 review tier。消費端出隊後寫入單槽 request.json,Hermes 審覈後按 sessionId 路由。
  3. 重啓流程:dsh-reset-handoff 將請求放入 reset tier(最高優先級)。任務經過門禁後,調用 reset_agent.py。

共享機制

插件提供了一套共享機制以確保環境一致性:
* 互斥鎖:共享 .hermes-busy 文件,用於序列化 Hermes 的調用,防止併發衝突。
* 單一編號源:作爲 requestId 的單一編號源,在 docs/ 掃描等場景中保證編號唯一。

安裝與啓用

該插件遵循 MIT 許可證。由於未提供具體的安裝命令,建議直接查看源碼倉庫進行集成。

注意事項

  1. 運行權限:插件以當前 DSH 進程的權限運行,部署前請檢查源碼邏輯與許可證。
  2. 容錯策略:插件採用 fail-closed 策略,異常情況下會阻止任務繼續流轉。
  3. 文檔參考:詳細的協作契約請參考「二·五 架構總覽」(~/.dsh/DSH-HERMES-CONTRACT.md)。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜