perf: 5进程同时进行

This commit is contained in:
archer
2023-04-04 21:41:55 +08:00
parent b13c3c4da5
commit 943abbe0fb
4 changed files with 19 additions and 9 deletions

View File

@@ -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--;
}
/**

View File

@@ -27,6 +27,7 @@ export async function connectToDatabase(): Promise<void> {
global.mongodb = null;
}
global.generatingQA = 0;
generateQA();
// generateAbstract();
generateVector();

View File

@@ -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('');

View File

@@ -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;