Skip to content

[app-task] feat: v0.12 控制台/调度集群化/CLI/配置占位符全面升级 - #119

Merged
atoncooper merged 7 commits into
mainfrom
feat/app-task-v0.12-cluster
Sep 29, 2026
Merged

atoncooper merged 7 commits into
mainfrom
feat/app-task-v0.12-cluster

Conversation

@atoncooper

Copy link
Copy Markdown
Owner

概要

app-task v0.12 全面升级(详见 CHANGELOG Unreleased 与 app-task/docs/)。

调度器并发化与集群化(无主多实例)

  • 批量认领事务(MySQL SKIP LOCKED)+ 并行派发,两级闸门(全局池 / per-URL)
  • dispatching 瞬态状态 + fencing token(finalize/release 按令牌栅栏,陈旧持有者结果按孤儿丢弃)
  • TTL 回收 + 心跳名册(internal/cluster)+ 死节点快速接管;cron 延展原子化;批量认领按 token 回读
  • 权重分摊(weight/最大存活权重);邮件队列同款认领语义
  • internal/cluster 集群管理包:名册/心跳/存活/优雅注销;控制台「集群」页 + GET /api/cluster + at node ls
  • 加入流程:控制台表单 / at node join 预登记 → 指引生成 → 首次心跳转正;可选 pre_approved fail-closed 准入

控制台与 CLI

  • Bootstrap 3.4.1 UI 体系 + CodeMirror 5 编辑器;T 字品牌标
  • at CLI:serve/info/ps/task/script/logs/email/node join
  • 凭据:master token / 服务面 API 密钥;API 密钥体系(生成/吊销/中心密钥库)

配置

  • ${VAR} / ${VAR:默认} 占位符展开(对齐主 app loader)
  • MySQL/Redis 连接配置补全(池/超时/TLS/PrepareStmt/慢查询)

鉴权与安全

  • APISIX app-task 路由注入 X-API-Key;中心密钥库 AES-256-GCM
  • 集群信息 admin 门;node_id 字符集校验;weight 上限钳制

附带

  • [app] chat agent 更名 main agent;CF 421 重试分类与空终答兜底

测试

  • go test ./... 全绿(10 包,含并发/一致性不变量测试:认领排他/栅栏 finalize/混合负载排空/邮件认领唯一/cron 原子/死节点接管)
  • 基准套件 app-task/bench/(认领/竞争/排空吞吐,未随 CI 运行)
  • 本地 gofmt/vet 干净

Closes #无关联 issue

- app/agent/chat/ → app/agent/main/(包与注册名 main,/chat 路由与计费 purpose 保留)
- 测试同步更名(test_main_agent_*),删除旧 chat agent 测试
- 网关 421 归类为可重试错误;LLM 空终答走重试兜底
调度器并发化与集群化(无主多实例):
- 批量认领事务(SKIP LOCKED)+ 并行派发,两级闸门(全局池/per-URL)
- dispatching 瞬态状态 + fencing token(finalize/release 按令牌栅栏)
- TTL 回收 + 心跳名册(internal/cluster)+ 死节点快速接管
- cron 延展原子化(消灭孤儿重复);批量认领按 token 回读
- 权重分摊(weight/最大存活权重);邮件队列同款认领语义

控制台与 CLI:
- Bootstrap 3.4.1 UI 体系 + CodeMirror 5 编辑器(T 字品牌标)
- at CLI(serve/info/ps/task/script/logs/email/node join)
- 集群页:名册/待接入/加入节点(预登记+指引,admin 门)
- 准入闸门 cluster.admission=pre_approved(fail-closed)

配置:
- ${VAR}/${VAR:默认} 占位符展开(对齐主 app loader)
- MySQL/Redis 连接配置补全(池/超时/TLS/PrepareStmt/慢查询)

鉴权与安全:
- API 密钥体系(service 面 X-API-Key + 控制台生成/吊销)
- APISIX app-task 路由注入 X-API-Key;中心密钥库 AES-256-GCM
- 集群信息 admin 门;node_id 字符集校验;weight 上限钳制

测试: 全套单测+并发/一致性不变量(bench 包),go test 全绿
@atoncooper
atoncooper merged commit d0f1b7a into main Sep 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant