Commit 943abbe0 by archer

perf: 5进程同时进行

parent b13c3c4d
......@@ -11,9 +11,17 @@ import { VecModelDataPrefix } from '@/constants/redis';
import { customAlphabet } from 'nanoid';
const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz1234567890', 12);
export async function generateQA(next = false): Promise<any> {
if (global.generatingQA && !next) return;
global.generatingQA = true;
export async function generateQA(): Promise<any> {
// 最多 5 个进程
if (global.generatingQA >= 5) {
console.log('QA 最多5个进程');
return;
}
global.generatingQA += 1;
setTimeout(() => {
generateQA();
}, 3000);
try {
const redis = await connectRedis();
......@@ -24,7 +32,7 @@ export async function generateQA(next = false): Promise<any> {
if (!dataItem) {
console.log('没有需要生成 QA 的数据');
global.generatingQA = false;
global.generatingQA = 0;
return;
}
......@@ -128,16 +136,17 @@ export async function generateQA(next = false): Promise<any> {
text: systemPrompt.content + text + response.rawContent
});
generateQA(true);
generateQA();
generateVector(true);
} catch (error: any) {
console.log(error);
console.log('生成QA错误:', error?.response);
setTimeout(() => {
generateQA(true);
generateQA();
}, 5000);
}
global.generatingQA--;
}
/**
......
......@@ -27,6 +27,7 @@ export async function connectToDatabase(): Promise<void> {
global.mongodb = null;
}
global.generatingQA = 0;
generateQA();
// generateAbstract();
generateVector();
......
......@@ -34,7 +34,7 @@ export const sendCode = (email: string, code: string, type: `${EmailTypeEnum}`)
};
mailTransport.sendMail(options, function (err, msg) {
if (err) {
console.log('error->', err);
console.log('send email error->', err);
reject('邮箱异常');
} else {
resolve('');
......@@ -53,7 +53,7 @@ export const sendTrainSucceed = (email: string, modelName: string) => {
};
mailTransport.sendMail(options, function (err, msg) {
if (err) {
console.log('error->', err);
console.log('send email error->', err);
reject('邮箱异常');
} else {
resolve('');
......
......@@ -4,7 +4,7 @@ import type { RedisClientType } from 'redis';
declare global {
var mongodb: Mongoose | string | null;
var redisClient: RedisClientType | null;
var generatingQA: boolean;
var generatingQA: number;
var generatingAbstract: boolean;
var generatingVector: boolean;
var QRCode: any;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment