docs: 添加设计决策注释说明有意为之的行为变更
- performHealthChecks: 如果没有选择任何 provider types 则不进行检查 - _checkProviderHealth: 不检查 per-provider checkHealth 标志,统一由 providerTypes 控制 - interval 验证: 后端不设最大值,允许通过 API 设置超长间隔
This commit is contained in:
parent
bacf2baf40
commit
714aee54bd
2 changed files with 16 additions and 3 deletions
|
|
@ -1672,12 +1672,17 @@ export class ProviderPoolManager {
|
|||
/**
|
||||
* Performs health checks on selected providers.
|
||||
* Respects SCHEDULED_HEALTH_CHECK.providerTypes configuration.
|
||||
*
|
||||
* 设计决策:如果没有选择任何 provider types,则不进行检查任何 provider。
|
||||
* 这是有意为之的设计 - 如果用户没有明确选择,则不需要自动健康检查。
|
||||
* 区别于原来的逻辑(检查所有 provider),现在的行为更符合用户预期。
|
||||
*/
|
||||
async performHealthChecks() {
|
||||
const scheduledConfig = this.globalConfig?.SCHEDULED_HEALTH_CHECK;
|
||||
const selectedProviderTypes = scheduledConfig?.providerTypes;
|
||||
|
||||
// 如果没有选择任何 provider types,不进行检查
|
||||
// 设计决策:如果用户没有选择任何 provider,明确不执行健康检查是合理的
|
||||
if (!Array.isArray(selectedProviderTypes) || selectedProviderTypes.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -1902,9 +1907,15 @@ export class ProviderPoolManager {
|
|||
|
||||
/**
|
||||
* Performs an actual health check for a specific provider.
|
||||
*
|
||||
* 设计决策:不检查 providerConfig.checkHealth 标志。
|
||||
* 健康检查是否执行由上层调用方(performScheduledHealthChecks / performHealthChecks)
|
||||
* 通过 providerTypes 数组来决定,不在每个 provider 级别控制。
|
||||
* 这样简化了逻辑,避免 per-provider 的 checkHealth flag 变得无用。
|
||||
*
|
||||
* @param {string} providerType - The type of the provider.
|
||||
* @param {object} providerConfig - The configuration of the provider to check.
|
||||
* @returns {Promise<{success: boolean, modelName: string, errorMessage: string}|null>} - Health check result object or null if check not implemented.
|
||||
* @returns {Promise<{success: boolean, modelName: string, errorMessage: string}>} - Health check result object.
|
||||
*/
|
||||
async _checkProviderHealth(providerType, providerConfig) {
|
||||
// 确定健康检查使用的模型名称
|
||||
|
|
|
|||
|
|
@ -362,9 +362,11 @@ async function startServer() {
|
|||
}
|
||||
|
||||
// 定时健康检查
|
||||
const scheduledConfig = CONFIG.SCHEDULED_HEALTH_CHECK;
|
||||
const scheduledConfig = CONFIG.SCHEDULED_HEALTH_CHECK;
|
||||
if (scheduledConfig?.enabled) {
|
||||
// Validate interval is within acceptable range (minimum 60000ms, no maximum)
|
||||
// 设计决策:只验证最小值 60000ms,不设最大值。
|
||||
// 前端有 max=3600000 (1小时) 的 UI 限制,但后端允许更大值以支持特殊需求。
|
||||
// 如果用户需要超长的间隔,可以通过 API 直接设置。
|
||||
const DEFAULT_INTERVAL = CONFIG.CRON_NEAR_MINUTES * 60 * 1000;
|
||||
let interval = scheduledConfig.interval;
|
||||
if (typeof interval !== 'number' || interval < 60000) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue