Skip to content

Executive Summary

在独立运行模式下,插件需要通过统一 Worker 接口,将长耗时任务提交到本地队列并由 goroutine 池执行。目标是以一致的并发/队列/超时/重试策略保障任务可靠完成,进度与状态可查、日志可追溯,并防止队列溢出或资源耗尽。

  • PowerXPlugin 脚手架生成的插件工程内置 standalone 启动入口与默认配置,复用同一 Handler 代码即可本地跑通任务、进度回写与观测,无需改造业务。

Scope & Guardrails

  • In Scope:任务提交/查询/取消接口;本地队列与并发池调度;超时、重试/退避、幂等键;进度/状态回写与日志;队列溢出保护。
  • Out of Scope:宿主任务分发、复杂 BPM 编排、宿主侧监控告警。
  • Environment & Flagsworker-facade-v1standalone-queue;依赖配置中心(并发/队列/超时/重试)、任务状态存储、日志管道。

Participants & Responsibilities

ScopeRepositoryLayer责任与交付物Owners
core-platformpowerxserviceWorker 接口、排队与并发控制、超时/重试、状态/日志回写、审计Michael Hu(matrix-x@artisan-cloud.com)
plugin-ecosystempowerx-pluginopsHandler 复用、进度回写、子进程与信号管理、脚手架提供 standalone 启动入口与默认策略Michael Hu(matrix-x@artisan-cloud.com)

End-to-End Flow

  1. 启动与注册:通过脚手架提供的 standalone 入口启动 Worker,加载默认并发/队列/超时/重试策略并完成 Handler 注册。
  2. 提交与入队:业务调用统一接口提交任务,校验并发/队列/幂等策略后入队。
  3. 执行与回写:goroutine 池按容量取任务执行 Handler(可调用外部工具),周期性回写进度/状态与日志。
  4. 超时与重试:执行超时或失败按退避策略重试,达上限后告警并标记失败。
  5. 完成与审计:成功或终止后写入最终状态、耗时与输出,记录审计。

Key Interactions & Contracts

  • APIs / EventsPOST /worker/tasksGET /worker/tasks/{id}PATCH /worker/tasks/{id}/progress、事件 worker.task.updated
  • Configs / Schemas:并发、队列长度、超时、重试/退避、幂等键;任务状态/进度回写 schema。
  • Security / Compliance:租户/插件 ACL、操作审计、日志脱敏、幂等令牌。

Usecase Links

  • UC-OPS-WORKER-STANDALONE-001 — standalone 队列与池执行。

Acceptance Criteria

  1. 任务提交/查询接口成功率 ≥99%,p95 延迟 <200ms;入队后 2s 内可查询状态。
  2. 队列深度与并发遵循配置,溢出返回可诊断错误且记录告警;重试遵守退避与幂等键。
  3. 进度/状态回写可靠,日志可检索;超时/失败有清晰的终态与审计记录。

Telemetry & Ops

  • 指标:worker.queue.depthworker.queue.wait_msworker.pool.concurrency_inuseworker.task.success_totalworker.task.retry_totalworker.task.timeout_total
  • 告警阈值:队列深度或等待时长超阈;重试失败率 >2%;进度回写失败率 >1%。
  • 观测来源:日志聚合、任务状态存储、Grafana/Datadog worker.* 面板。

Open Issues & Follow-ups

风险/事项影响范围负责人ETA
队列溢出与资源竞争的压测基线未建立standalone 资源Michael Hu2025-10-31
外部工具日志格式未统一,影响回写与检索可观测性Michael Hu2025-11-10

基于 Apache 2.0 许可发布