feat: 添加账户状态监控和自动恢复机制

- 实现账户健康度监控系统,支持30分钟内错误率检测
- 添加自动恢复机制,失败账户在30分钟后自动尝试恢复
- 优化账户选择策略,优先选择健康账户
- 增强Redis键管理,添加账户状态和错误追踪功能
- 改进Gemini服务错误处理和重试逻辑
- 新增standardGeminiRoutes标准化路由支持

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
shaw
2025-09-11 22:02:53 +08:00
parent b6b16d05f0
commit 7c4feec5aa
8 changed files with 912 additions and 10 deletions

View File

@@ -336,15 +336,15 @@ router.post('/api/user-stats', async (req, res) => {
const responseData = {
id: keyId,
name: fullKeyData.name,
description: keyData.description || '',
description: fullKeyData.description || keyData.description || '',
isActive: true, // 如果能通过validateApiKey验证说明一定是激活的
createdAt: keyData.createdAt,
expiresAt: keyData.expiresAt,
createdAt: fullKeyData.createdAt || keyData.createdAt,
expiresAt: fullKeyData.expiresAt || keyData.expiresAt,
// 添加激活相关字段
expirationMode: keyData.expirationMode || 'fixed',
isActivated: keyData.isActivated === 'true',
activationDays: parseInt(keyData.activationDays || 0),
activatedAt: keyData.activatedAt || null,
expirationMode: fullKeyData.expirationMode || 'fixed',
isActivated: fullKeyData.isActivated === true || fullKeyData.isActivated === 'true',
activationDays: parseInt(fullKeyData.activationDays || 0),
activatedAt: fullKeyData.activatedAt || null,
permissions: fullKeyData.permissions,
// 使用统计(使用验证结果中的完整数据)