sususu98
1458d609ca
feat: 为 Claude Console 账户添加并发控制机制
...
实现了完整的 Claude Console 账户并发任务数控制功能,防止单账户过载,提升服务稳定性。
**核心功能**
- 🔒 **原子性并发控制**: 基于 Redis Sorted Set 实现的抢占式并发槽位管理,防止竞态条件
- 🔄 **自动租约刷新**: 流式请求每 5 分钟自动刷新租约,防止长连接租约过期
- 🚨 **智能降级处理**: 并发满额时自动清理粘性会话并重试其他账户(最多 1 次)
- 🎯 **专用错误码**: 引入 `CONSOLE_ACCOUNT_CONCURRENCY_FULL` 错误码,区分并发限制和其他错误
- 📊 **批量性能优化**: 调度器使用 Promise.all 并行查询账户并发数,减少 Redis 往返
**后端实现**
1. **Redis 并发控制方法** (src/models/redis.js)
- `incrConsoleAccountConcurrency()`: 增加并发计数(带租约)
- `decrConsoleAccountConcurrency()`: 释放并发槽位
- `refreshConsoleAccountConcurrencyLease()`: 刷新租约(流式请求)
- `getConsoleAccountConcurrency()`: 查询当前并发数
2. **账户服务增强** (src/services/claudeConsoleAccountService.js)
- 添加 `maxConcurrentTasks` 字段(默认 0 表示无限制)
- 获取账户时自动查询实时并发数 (`activeTaskCount`)
- 支持更新并发限制配置
3. **转发服务并发保护** (src/services/claudeConsoleRelayService.js)
- 请求前原子性抢占槽位,超限则立即回滚并抛出专用错误
- 流式请求启动定时器每 5 分钟刷新租约
- `finally` 块确保槽位释放(即使发生异常)
- 为每个请求分配唯一 `requestId` 用于并发追踪
4. **统一调度器优化** (src/services/unifiedClaudeScheduler.js)
- 获取可用账户时批量查询并发数(Promise.all 并行)
- 预检查并发限制,避免选择已满的账户
- 检查分组成员时也验证并发状态
- 所有账户并发满额时抛出专用错误码
5. **API 路由降级处理** (src/routes/api.js)
- 捕获 `CONSOLE_ACCOUNT_CONCURRENCY_FULL` 错误
- 自动清理粘性会话映射并重试(最多 1 次)
- 重试失败返回 503 错误和友好提示
- count_tokens 端点也支持并发满额重试
6. **管理端点验证** (src/routes/admin.js)
- 创建/更新账户时验证 `maxConcurrentTasks` 为非负整数
- 支持前端传入并发限制配置
**前端实现**
1. **表单字段** (web/admin-spa/src/components/accounts/AccountForm.vue)
- 添加"最大并发任务数"输入框(创建和编辑模式)
- 支持占位符提示"0 表示不限制"
- 表单数据自动映射到后端 API
2. **实时监控** (web/admin-spa/src/views/AccountsView.vue)
- 账户列表显示并发状态进度条和百分比
- 颜色编码:绿色(<80%)、黄色(80%-100%)、红色(100%)
- 显示"X / Y"格式的并发数(如"2 / 5")
- 未配置限制时显示"并发无限制"徽章
2025-10-21 13:43:57 +08:00
shaw
b61a3103e9
feat: claude转发增加runtimeAddon
2025-10-19 18:05:19 +08:00
shaw
edf302fd6b
chore: 去除claude转发冗余代码
2025-10-19 17:43:13 +08:00
shaw
abef8a4e31
feat: claude账号新增保存claude的uuid
2025-10-19 17:15:31 +08:00
github-actions[bot]
580afadf79
chore: sync VERSION file with release v1.1.181 [skip ci]
2025-10-18 07:59:24 +00:00
shaw
d3489d1bfd
fix: 修复apikey最后使用账号为已删除的bug
2025-10-18 11:42:13 +08:00
shaw
1ed0ca31ec
fix: 修复因代理ip不可用导致axios的proxy回退到环境变量代理问题
2025-10-18 11:00:43 +08:00
shaw
6ea2012ab1
Merge branch 'main' of github.com:Wei-Shaw/claude-relay-service
2025-10-17 23:15:03 +08:00
shaw
2ec17360d6
fix: 修复oauth的claude账号在apikey最后使用显示未已删除的bug
2025-10-17 23:14:39 +08:00
github-actions[bot]
299b16e9c6
chore: sync VERSION file with release v1.1.180 [skip ci]
2025-10-17 14:38:04 +00:00
shaw
17311f2d3b
fix: 修复apikey最后使用查找问题
2025-10-17 22:36:31 +08:00
shaw
b0e6ac3923
fix: 修复openai账号类型查找前缀
2025-10-17 21:15:56 +08:00
shaw
aa66d89021
fix: 修复gemini转发的部分bug
2025-10-17 20:15:50 +08:00
shaw
05f4454c10
feat: apikey显示最后调度的账号
2025-10-17 19:44:40 +08:00
shaw
e3a2d33428
chore: 移除codex-pr-review
2025-10-17 16:32:47 +08:00
shaw
484689e479
Merge branch 'dev' of github.com:Wei-Shaw/claude-relay-service into dev
2025-10-17 16:32:11 +08:00
Wesley Liddick
3e381ea211
Merge pull request #589 from sususu98/dev
...
feat: 新增Claude Console账户错误消息清理和临时封禁
2025-10-17 16:31:51 +08:00
shaw
5cff6fdd6d
Merge branch 'new' into dev
2025-10-17 16:26:37 +08:00
shaw
ad9a65d3c9
chore: 移除codex-pr-review
2025-10-17 16:20:33 +08:00
shaw
9ed4a344be
fix: 修复gemini转发问题
2025-10-17 16:11:12 +08:00
sususu
77bca73094
fix: 优化验证器代码格式,提升可读性
2025-10-17 15:30:05 +08:00
sususu
b0917b75a4
feat: 新增Claude Console账户临时封禁处理和错误消息清理
...
- 新增 CLAUDE_CONSOLE_BLOCKED_HANDLING_MINUTES 配置项,自动处理账户临时禁用的 400 错误(如 "organization has been disabled"、"too many active sessions" 等)。
- 添加 errorSanitizer 工具模块,自动清理上游错误响应中的供应商特定信息(URL、供应商名称等),避免泄露中转服务商信息。
- 统一调度器现在会主动检查并恢复已过期的封禁账户,确保账户在临时封禁时长结束后可以立即重新使用。
2025-10-17 15:27:47 +08:00
AAEE86
8f58fe6264
feat: 账号使用趋势增加对Droid账户的支持
2025-10-16 23:01:06 +08:00
shaw
28b709d30b
fix: 改为pull_request_target
2025-10-16 21:20:14 +08:00
shaw
cad285e8af
fix: 修复codex-pr-review.yml格式
2025-10-16 20:27:30 +08:00
shaw
b5efb23a5e
fix: codex-pr-review增加秘钥校验
2025-10-16 19:32:50 +08:00
shaw
c3e9082367
Merge branch 'main' of github.com:Wei-Shaw/claude-relay-service
2025-10-16 15:56:59 +08:00
shaw
be67af6340
fix: 调整为Wei-Shaw/codex-action@crs
2025-10-16 15:56:17 +08:00
github-actions[bot]
c9d4ee1cf5
chore: sync VERSION file with release v1.1.179 [skip ci]
2025-10-16 07:36:19 +00:00
shaw
f6eb077d82
fix: 优化pricing服务关停逻辑,确保定时器在清理阶段正确释放
2025-10-16 15:35:40 +08:00
shaw
83f7353284
fix: 修复console脏数据问题
2025-10-16 15:29:45 +08:00
shaw
86cecaa356
chore: PR review增加reopened、synchronize
2025-10-16 15:09:09 +08:00
github-actions[bot]
2ac088fd3a
chore: sync VERSION file with release v1.1.178 [skip ci]
2025-10-16 06:48:54 +00:00
shaw
994e474155
fix: 修复批量编辑apikey模式无法选择oai账号
2025-10-16 14:48:15 +08:00
shaw
4b011fe8b1
chore: 添加 Codex PR 审计工作流
2025-10-16 14:32:27 +08:00
shaw
2f0839c7da
feat: 合并 PR #578 并接入统一定价服务
2025-10-16 14:12:25 +08:00
AAEE86
d3cf66e2c0
Update AccountsView.vue
...
移除 overflow-x: auto
2025-10-16 11:13:23 +08:00
github-actions[bot]
6c0f38f5e8
chore: sync VERSION file with release v1.1.177 [skip ci]
2025-10-16 02:47:50 +00:00
shaw
d606cb2e38
fix: 优化模型价格文件更新策略
2025-10-16 10:46:45 +08:00
liangjie.wanglj
b9d2e855f3
claude console类型中增加claude-haiku-4-5-20251001、GLM、Kimi、Qwen模型支持;增加计费消息通知;Claude console 及 ccr模型匹配大小写不敏感
2025-10-16 09:53:42 +08:00
shaw
d275b0d4b6
Merge branch 'new' into dev
2025-10-16 09:41:14 +08:00
shaw
0092c92196
Merge branch 'docs/update-claude-md-comprehensive' into dev
2025-10-16 09:40:24 +08:00
AAEE86
914c1b6120
Merge branch 'main' into new
2025-10-15 23:38:18 +08:00
github-actions[bot]
3cb674279a
chore: sync VERSION file with release v1.1.176 [skip ci]
2025-10-15 12:49:09 +00:00
shaw
472fb535cf
Merge branch 'bottotl/main' into dev
2025-10-15 19:27:13 +08:00
shaw
77124aa501
fix: droid去掉count_tokens端点
2025-10-15 15:50:04 +08:00
AAEE86
8ab3c76c6f
feat: 新增 API Key 筛选和搜索功能
...
- 筛选key,新增支持筛选正常和异常状态的key
- 搜索key,新增支持模糊/精确搜索key
- 删除key,新增支持一键删除所有异常状态的key或者删除所有key
- 导出key,新增支持一键导出所有异常状态的key或者导出所有key
2025-10-15 15:35:59 +08:00
shaw
c2669da4b3
fix: 更新factory user-agent
2025-10-15 15:26:58 +08:00
shaw
d72897f835
fix: droid转发增加runtimeAddon调试插件
2025-10-15 15:17:20 +08:00
litongtongxue
1bd9002af9
docs: 全面更新 CLAUDE.md 文档以反映最新代码实现
...
## 更新概要
本次更新全面审查了代码库,将严重过期的 CLAUDE.md 文档更新到与当前实现一致。
## 主要更新内容
### 1. 项目概述和架构
- 更新为多平台支持(8种账户类型)
- 添加统一调度系统说明
- 补充权限控制、客户端限制、模型黑名单等新功能
### 2. 服务组件
- 从5个服务扩展到30+个服务的完整列表
- 新增核心转发服务(8个)
- 新增账户管理服务(10个)
- 新增统一调度器(4个)
- 新增核心功能服务(用户管理、定价、Webhook、LDAP等)
### 3. 环境变量配置
- 新增20+个重要环境变量说明
- 添加AWS Bedrock配置
- 添加用户管理、LDAP、Webhook配置说明
### 4. API端点
- 更新为多路由支持(Claude、Gemini、OpenAI、Droid、Azure)
- 新增用户管理端点
- 新增Webhook管理端点
- 新增系统指标端点
### 5. Redis数据结构
- 扩展为8种账户类型的数据结构
- 添加用户管理、粘性会话、并发控制相关键
- 添加成本统计、Webhook配置相关键
### 6. 故障排除
- 从4个问题扩展到13个常见问题
- 新增粘性会话、LDAP、Webhook、调度器等问题解决方案
### 7. CLI工具
- 添加数据导入导出命令
- 添加数据迁移和修复命令
- 添加成本初始化和定价更新命令
### 8. 新增功能概览章节
- 列出相比旧版本的所有新增功能
- 包括多平台支持、用户权限系统、统一调度、成本监控等
## 技术细节
- 保持所有现有章节结构
- 使用 Prettier 格式化确保代码风格一致
- 基于实际代码审查(src/services/、src/routes/、config/等)
- 确保所有端点、配置项、数据结构与代码实现一致
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-15 01:03:57 +08:00