现象
用户修改配置文件中的"vectorMaxProcess": 15为"vectorMaxProcess": 16后,部署运行时出现配置不生效的问题。运行日志中同时出现两种队列上限的日志:部分日志显示队列上限为16,例如=== queue: 2910: 2/16;另一部分日志显示队列上限仍为10,例如=== queue: 3021: 1/10,且队列最多堆积到10个任务后不再增长,未达到配置的16上限。
可能原因
从运行日志的不同进程PID来看,存在多个FastGPT运行进程,部分进程未正确加载更新后的vectorMaxProcess配置,导致不同进程使用了不同的队列上限参数。
排查步骤
- 修改项目配置文件中的
vectorMaxProcess参数值,例如设置为16。 - 在
projects/app/src/service/events/generateVector.ts的generateVector()函数中,// get training data注释前添加以下日志代码:
import * as process from 'process';
const pid = process.pid;
console.log(`=== queue: ${pid}: ${global.vectorQueueLen}/${max}`)- 使用
pnpm dev启动项目,查看控制台输出的运行日志。 - 对比日志中显示的队列上限(日志中的分母数值)与配置的
vectorMaxProcess值是否一致。
解决与验证
解决方法为重启所有运行中的FastGPT服务进程,确保每个进程都读取并加载了更新后的配置文件。验证方式为查看运行日志,确认所有队列日志中的分母均与配置的vectorMaxProcess值一致,且队列可堆积到配置的上限数量。