mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 00:53:33 +00:00
feat: 优化粘性会话TTL管理策略
- 将TTL默认值从15天改为1小时,更适合短期会话场景 - 将续期阈值默认设为0,默认不自动续期,提高控制精度 - 时间单位从天调整为小时/分钟,提供更细粒度的控制 - 添加环境变量配置支持:STICKY_SESSION_TTL_HOURS 和 STICKY_SESSION_RENEWAL_THRESHOLD_MINUTES - 保持向后兼容性,所有现有部署将自动使用新的默认值 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -3,8 +3,8 @@ const crypto = require('crypto')
|
||||
const ProxyHelper = require('../utils/proxyHelper')
|
||||
const axios = require('axios')
|
||||
const redis = require('../models/redis')
|
||||
const logger = require('../utils/logger')
|
||||
const config = require('../../config/config')
|
||||
const logger = require('../utils/logger')
|
||||
const { maskToken } = require('../utils/tokenMask')
|
||||
const {
|
||||
logRefreshStart,
|
||||
@@ -723,7 +723,9 @@ class ClaudeAccountService {
|
||||
|
||||
// 如果有会话哈希,建立新的映射
|
||||
if (sessionHash) {
|
||||
await redis.setSessionAccountMapping(sessionHash, selectedAccountId, 3600) // 1小时过期
|
||||
// 从配置获取TTL(小时),转换为秒
|
||||
const ttlSeconds = (config.session?.stickyTtlHours || 1) * 60 * 60
|
||||
await redis.setSessionAccountMapping(sessionHash, selectedAccountId, ttlSeconds)
|
||||
logger.info(
|
||||
`🎯 Created new sticky session mapping: ${sortedAccounts[0].name} (${selectedAccountId}) for session ${sessionHash}`
|
||||
)
|
||||
@@ -877,7 +879,9 @@ class ClaudeAccountService {
|
||||
|
||||
// 如果有会话哈希,建立新的映射
|
||||
if (sessionHash) {
|
||||
await redis.setSessionAccountMapping(sessionHash, selectedAccountId, 3600) // 1小时过期
|
||||
// 从配置获取TTL(小时),转换为秒
|
||||
const ttlSeconds = (config.session?.stickyTtlHours || 1) * 60 * 60
|
||||
await redis.setSessionAccountMapping(sessionHash, selectedAccountId, ttlSeconds)
|
||||
logger.info(
|
||||
`🎯 Created new sticky session mapping for shared account: ${candidateAccounts[0].name} (${selectedAccountId}) for session ${sessionHash}`
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user