Commit 943abbe0 by archer

perf: 5进程同时进行

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