giip
SES 商機登記
7分鐘閱讀

CQELSVR 執行清單指南

介紹如何查詢在特定邏輯伺服器(LSSN)上註冊的 CQE(Custom Query Engine)指令碼排程,以及如何強制執行、切換啟用狀態、刪除和檢視指令碼。

🚀 前往 CQELSVR 執行清單頁面 →

📋 概述

CQELSVR 執行清單 用於查詢並直接控制註冊在某一邏輯伺服器(LSSN)上的 CQE 指令碼排程(tMgmtScriptList)。選擇伺服器後會顯示其已註冊的排程清單,您可以在每一列上立即執行強制執行、切換啟用狀態、刪除或檢視指令碼正文。

🔄 整體流程 (CQE Flow)

flowchart TD
    A[管理者: CQERepoPut<br/>在倉庫中註冊指令碼] --> B[tMgmtScript<br/>指令碼儲存庫]
    B --> C[管理者: CQEQueuePut<br/>向目標伺服器分配排程]
    C --> D[tMgmtScriptList<br/>各LSSN的排程]
    D --> E[代理程式: CQEQueueGet<br/>定期輪詢]
    E --> F[tMgmtQue<br/>從執行佇列接收ms_body]
    F --> G[代理程式: 本地執行<br/>指令碼]
    G --> H[KVSPut<br/>報告結果]
    style A fill:#e1f5fe
    style B fill:#b3e5fc
    style C fill:#e1f5fe
    style D fill:#b3e5fc
    style E fill:#e8f5e9
    style F fill:#c8e6c9
    style G fill:#fff9c4
    style H fill:#ffccbc

🔍 畫面組成

1. 選擇伺服器

  • 輸入 LSSN: 在頂部輸入欄中直接輸入邏輯伺服器 ID(LSSN)。
  • 選擇伺服器按鈕: 點擊後會彈出目前專案(csn)下已註冊的伺服器清單,選取後自動填入 LSSN 欄位。
  • 工作階段記憶: 一旦選擇過的 LSSN 會儲存在瀏覽器 sessionStorage 中,重新整理頁面後仍會保留。

2. 查詢執行清單

  • Run 按鈕: 輸入或選擇 LSSN 後點擊,即可在下方載入該伺服器的排程清單。
  • 翻頁: 使用 Prev / Next 按鈕逐頁移動,也可以在 Offset 輸入欄中直接輸入數字並按 Run 跳轉到指定偏移量(伺服器每次最多回傳 25 筆)。

3. 逐列操作

清單中的每一列(一筆排程 = 一個 mslsn)支援:

  • 強制執行: 無論排程週期為何,立即將其加入一次性執行佇列。若該排程已有排隊中的任務,則會失敗。
    • 該操作的實質是向 tMgmtQue 資料表中插入一筆執行記錄。代理程式會輪詢該佇列並取走記錄。
    • 對於一次性(repeat=1)排程,強制執行時 active 會降為 0。這只表示「下個週期不要再自動註冊該排程」,已經進入佇列的執行記錄仍會正常執行。 請勿把 active=0 誤解為執行已被取消。
  • 切換啟用: 切換該排程的 Active 狀態(開/關)。
  • 刪除: 從清單中永久移除該排程(mslsn)——這是硬刪除而非簡單取消,如需再次使用必須重新註冊。
  • 檢視指令碼: 點擊列中的執行 ID(mssn)會在下方(或彈出視窗)面板中顯示該指令碼的正文。

4. 跳轉至詳情頁面

  • Machine Detail 按鈕: 跳轉至所選 LSSN 的詳情頁面(/lsvrdetail)。
  • Add Queue 按鈕: 跳轉至 /zh-TW/cqeQueuePut 頁面,為該伺服器註冊新的排程。開始日期的時區約定請參閱 CQE 佇列註冊指南。

📊 欄位說明

欄說明
msName已註冊指令碼的名稱
mssn指令碼唯一 ID。點擊可檢視指令碼正文。
mslsn該排程(伺服器-指令碼分配)的唯一 ID,是強制執行/切換啟用/刪除的操作對象。
lssn該排程所註冊的邏輯伺服器 ID
active週期排程是否自動重新註冊(1=開啟/0=關閉)。即使該值為 0,也與已經進入佇列的執行記錄是否執行無關。對於一次性(repeat=1)排程,強制執行時該值降為 0 屬於正常現象。
repeat是否/如何重複執行(1=一次性)
interval重複間隔(分鐘)
q_flag執行佇列等待中標記(1=正在 tMgmtQue 中等待)。代理程式取走佇列後會恢復為 0。 也就是說 q_flag=1 表示「尚未取走」,0 表示「已取走或無等待記錄」。
lastdate最後一次執行(加入佇列)的時間。以 UTC 為基準儲存與顯示(與本機時間相差一個時區偏移屬於正常)。
regdate該排程的註冊時間

執行後的狀態轉換

無論是強制執行還是週期執行,代理程式取走佇列後,各值會依下列方式變化:

對象變化
tMgmtQue.send_flag變為 1(代理程式已接收)
q_flag由 1 恢復為 0(等待記錄已消除)
lastdate更新為執行(加入佇列)的時間
active不會自動恢復。

⚠️ 若希望一次性排程在強制執行後繼續週期重複,必須在執行結束後用[切換啟用]把 active 重新開啟。 系統不會自動恢復。

⚙️ 需求

  • 需要登入工作階段(CSN)——沒有工作階段則無法載入伺服器清單。
  • 要查詢的 LSSN 必須已註冊在目前所選專案下。
  • 強制執行/切換啟用需要您是該排程的擁有者,或擁有其他權限(如市集購買)。

API 參考

有關本功能的 API 詳細規格,請參閱專門指南。

📘 系統管理 API 參考

疑難排解

症狀原因解決
伺服器選擇彈出視窗清單為空目前所選專案(csn)下沒有已註冊的伺服器確認已在頂部選擇正確的專案。
強制執行無反應地失敗該排程已有排隊中的任務(防止重複執行),或您對該排程沒有權限稍後重試,或向該排程的擁有者確認。
刪除後該列看起來仍在清單中刪除已成功,但畫面尚未重新整理再次按 Run 重新載入最新清單。
點擊刪除沒有任何反應,或悄悄失敗(例如別人註冊的排程)您不是該排程的擁有者,因此沒有刪除權限(RstVal=403)畫面現在會顯示錯誤提示(已在 giip 3042 中修復)。請查看提示訊息,如有需要請讓該排程的擁有者或更高權限的帳號執行刪除。
開啟啟用後並未立即執行啟用只是恢復該排程的排程執行,並非立即執行如需立即執行,請使用 強制執行。
強制執行後 q_flag=1 但 active=0,看起來不會執行一次性排程在強制執行時 active 降為 0 屬於正常保持原樣即可,會在代理程式的下次輪詢中執行。若之後還希望週期重複,請用[切換啟用]重新開啟。
佇列處於等待中(q_flag=1),但過了幾分鐘仍未被取走若排程的 lastdate/開始日期被儲存為未來時間,它會在取用候選排序中被永久排到最後(把本機時間原樣儲存到 UTC 資料庫時會發生)檢查該排程的開始日期,若被設為未來則重新註冊。若反覆出現,請提交 giip 問題單回報。

🔌 CQE API(自動化)

上述介面操作對應以下 CQE API 動詞(byAK/bySk 分派器)。請求傳送 text(動詞+參數名)、jsondata(值)與 token——但清單查詢(CQELsvrRunList)是例外,其參數直接包含在 text 字串中傳送(不使用 jsondata)。

  • CQELsvrRunList lssn <lssn> <offset> — 查詢該 LSSN 上註冊的排程清單。伺服端一律從指定偏移量最多回傳 25 筆(固定,呼叫端無法調整)。回應欄位與上方「欄位說明」表一致。
  • LSVRList csn — 查詢該 csn(專案)下註冊的邏輯伺服器清單(用於伺服器選擇彈出視窗)。
  • CQERunForce mslsn — 無論排程週期為何,立即加入一次性執行佇列(tMgmtQue)。一次性(repeat=1)排程此時 active 會降為 0,但已加入的執行記錄仍會照常執行。回應 RstVal:200=成功,300=無權限,302=已在佇列中(衝突),610=權限不足或燃料餘額不足。
  • CQERunActvate mslsn — 將該排程的 active 值在 1 與 0 之間切換。回應 RstVal 與 CQERunForce 相同體系(200/300/302/610)。
  • CQEQueueDel mslsn — 永久刪除該排程(非簡單取消,需要重新註冊)。回應 RstVal:200=成功,403=無權限,404=找不到目標。
  • CQERepoScript mssn — 取得該指令碼(mssn)的正文(msBody)。

認證模型: 此頁面的 API 並非使用 giip-issue 技能的 x-api-key(SK)方式,而是使用登入工作階段的權杖方式,每次請求隨附 user_id + token。

相鄰功能(指令碼註冊/批次部署至伺服器)的完整規格: CQE 儲存庫指令碼管理指南的「🔌 CQE API(自動化)」一節,以及 giipdb docs/30_Specs/CQE_SPECIFICATION.md。


版本: 1.3 最後更新: 2026-09-25 來源檔案: giipv3/public/help/cqelsvrRunList.zh-TW.md