CQELSVR 执行列表指南
介绍如何查询在特定逻辑服务器(LSSN)上注册的 CQE(Custom Query Engine)脚本调度,以及如何强制执行、切换启用状态、删除和查看脚本。
📋 概述
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-CN/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 详细规范,请参阅专门指南。
故障排除
| 症状 | 原因 | 解决 |
|---|---|---|
| 服务器选择弹窗列表为空 | 当前所选项目(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-CN.md