跳转到内容

Workers

Workers 页面用于查看 ASP 五类后台 Worker 的当前运行状态。它可以识别“容器仍在运行,但 Worker 轮询已经失败”这一类仅查看 Docker 容器状态难以发现的问题。

入口与权限

Workers 位于 System Settings 的 Workers Tab,仅 Admin 可以访问。

页面进入时立即读取一次状态,之后每 10 秒自动更新。页面不提供手动刷新按钮;请求失败后会在下一周期自动重试。

Worker 类型

WorkerDjango 子命令用途
Agentic Module Workerrun_agentic_module_worker消费 Module Redis Stream 并执行自定义 Module。
Case Analysis Workerrun_agentic_case_analysis_worker执行待处理的 Case Analysis Job。
Playbook Workerrun_agentic_playbook_worker执行待处理的 Playbook Run。
ELK Action Workerrun_elk_action_worker轮询 ELK Action Index 并写入 Redis Stream。
Dashboard Cache Workerrun_dashboard_cache_worker定期生成 Dashboard 缓存。

State

State说明
StartingWorker 已启动,首次轮询尚未完成。
Idle最近一次轮询成功,当前没有正在执行的 iteration。
RunningWorker 当前正在执行 iteration。
Degraded最近一次 Worker 轮询发生基础设施异常。
DownWorker 从未上报、正常退出或心跳已过期。

Down 的具体原因由 reason 区分:

Reason说明
never_reportedWorker 从未写入健康状态。
heartbeat_expired最近心跳超过 30 秒。
gracefulWorker 已正常退出。

单个 Playbook、Case Analysis 或 Module 的业务执行失败不会把 Worker 标记为 Degraded。请在对应业务记录和日志中检查这些失败。

页面字段

  • 当前 State 和 reason。
  • 当前或最近一次任务摘要。
  • 当前或最近一次 iteration 耗时。
  • 最近心跳时间。
  • 最近轮询成功时间。
  • 最近实际处理到工作的时间。
  • 最近轮询失败时间。
  • 不包含原始异常或 Secret 的安全错误摘要。

页面不展示 backlog、历史趋势、日志内容或累计计数器,也不提供 Restart、Stop 或 Run Now。

手动执行

Compose 已经为每类 Worker 运行一个长期进程。排查时如需手动执行一次,使用 --once

bash
docker compose exec asp-web python manage.py run_dashboard_cache_worker --once

把命令名替换为上表中的其他子命令即可。--once 不会上报 Worker Health。

不要手动启动不带 --once 的第二个长期 Worker。当前 Compose 只支持每类一个实例,同类型多实例会互相覆盖健康状态。

故障排查

Monitoring unavailable

Workers API 从 Redis 读取健康状态。Redis 不可访问时,页面显示:

text
Worker health monitoring is unavailable.

先检查 Redis 和 ASP 服务状态:

bash
docker compose ps
./scripts/doctor.sh

Degraded 或 Down

查看对应 Compose 服务的日志,例如:

bash
docker compose logs --tail=100 asp-worker-playbook
docker compose logs -f asp-worker-dashboard-cache

修复配置或运行问题后,重启对应服务。Worker 恢复轮询后,页面会在下一次自动更新时显示新状态。

功能边界

  • 心跳线程每 10 秒上报一次。
  • 心跳超过 30 秒时计算为 Down
  • 不自动判断 Stalled;长任务会持续显示 Running 和运行时长。
  • Worker Health 只表达进程与轮询循环状态,不替代业务结果、容器状态和日志。

下一步

  • 重启 & 运维 — 查看服务状态、日志及重启方式。
  • Runtime — 配置 Dashboard Worker 刷新间隔等运行参数。
  • Custom Console — 查看 Module 和 Playbook 定义。