mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 09:38:02 +00:00
refactor: optimize cron test support feature
**优化内容:** 1. **验证和安全性加强** - 移除cron验证重复,统一使用accountTestSchedulerService.validateCronExpression()方法 - 添加model参数类型和长度验证(max 256 chars) - 限制cronExpression长度至100字符防止DoS攻击 - 双层验证:service层和route层都进行长度检查 2. **性能优化** - 优化_refreshAllTasks()使用Promise.all()并行加载所有平台配置(之前是顺序加载) - 改进错误处理,平台加载失败时继续处理其他平台 3. **数据管理改进** - 为test config添加1年TTL过期机制(之前没有过期设置) - 保证test history已有30天TTL和5条记录限制 4. **错误响应标准化** - 统一所有API响应格式,确保error状态都包含message字段 - 改进错误消息的可读性和上下文信息 5. **用户体验改进** - Vue组件使用showToast()替代原生alert() - 移除console.error()改用toast通知用户 - 成功保存时显示成功提示 6. **代码整理** - 移除未使用的maxConcurrentTests变量及其getStatus()中的引用 - 保持代码整洁性 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3181,6 +3181,7 @@ redisClient.scanConcurrencyQueueStatsKeys = async function () {
|
||||
|
||||
const ACCOUNT_TEST_HISTORY_MAX = 5 // 保留最近5次测试记录
|
||||
const ACCOUNT_TEST_HISTORY_TTL = 86400 * 30 // 30天过期
|
||||
const ACCOUNT_TEST_CONFIG_TTL = 86400 * 365 // 测试配置保留1年(用户通常长期使用)
|
||||
|
||||
/**
|
||||
* 保存账户测试结果
|
||||
@@ -3300,6 +3301,8 @@ redisClient.saveAccountTestConfig = async function (accountId, platform, testCon
|
||||
model: testConfig.model || 'claude-sonnet-4-5-20250929', // 默认模型
|
||||
updatedAt: new Date().toISOString()
|
||||
})
|
||||
// 设置过期时间(1年)
|
||||
await client.expire(key, ACCOUNT_TEST_CONFIG_TTL)
|
||||
} catch (error) {
|
||||
logger.error(`Failed to save test config for ${accountId}:`, error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user