perf(proxy): cache agents with opt-in pooling

This commit is contained in:
mikewong23571
2025-11-22 05:01:46 -08:00
parent c0f517b10c
commit c47bb7295e
4 changed files with 97 additions and 5 deletions

View File

@@ -73,6 +73,30 @@ const config = {
proxy: {
timeout: parseInt(process.env.DEFAULT_PROXY_TIMEOUT) || 600000, // 10分钟
maxRetries: parseInt(process.env.MAX_PROXY_RETRIES) || 3,
// 连接池与 Keep-Alive 配置(默认关闭,需要显式开启)
keepAlive: (() => {
if (process.env.PROXY_KEEP_ALIVE === undefined || process.env.PROXY_KEEP_ALIVE === '') {
return false
}
return process.env.PROXY_KEEP_ALIVE === 'true'
})(),
maxSockets: (() => {
if (process.env.PROXY_MAX_SOCKETS === undefined || process.env.PROXY_MAX_SOCKETS === '') {
return undefined
}
const parsed = parseInt(process.env.PROXY_MAX_SOCKETS)
return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined
})(),
maxFreeSockets: (() => {
if (
process.env.PROXY_MAX_FREE_SOCKETS === undefined ||
process.env.PROXY_MAX_FREE_SOCKETS === ''
) {
return undefined
}
const parsed = parseInt(process.env.PROXY_MAX_FREE_SOCKETS)
return Number.isFinite(parsed) && parsed >= 0 ? parsed : undefined
})(),
// IP协议族配置true=IPv4, false=IPv6, 默认IPv4兼容性更好
useIPv4: process.env.PROXY_USE_IPV4 !== 'false' // 默认 true只有明确设置为 'false' 才使用 IPv6
},