diff --git a/src/apis/index.js b/src/apis/index.js
index 5e1191f..bad3a4d 100644
--- a/src/apis/index.js
+++ b/src/apis/index.js
@@ -451,6 +451,11 @@ export const apiTranslate = async ({
const { apiSlug, batchInterval, batchSize, batchLength } = apiSetting;
const key = `${apiSlug}_${fromLang}_${toLang}`;
const queue = getBatchQueue(key, handleTranslate, {
+ batchInterval,
+ batchSize,
+ batchLength,
+ });
+ const tranlation = await queue.addTask(text, {
from,
to,
fromLang,
@@ -460,11 +465,7 @@ export const apiTranslate = async ({
glossary,
apiSetting,
usePool,
- batchInterval,
- batchSize,
- batchLength,
});
- const tranlation = await queue.addTask(text);
if (Array.isArray(tranlation)) {
[trText, srLang = ""] = tranlation;
} else if (typeof tranlation === "string") {
diff --git a/src/libs/batchQueue.js b/src/libs/batchQueue.js
index bc2ad3b..8782f1d 100644
--- a/src/libs/batchQueue.js
+++ b/src/libs/batchQueue.js
@@ -16,15 +16,14 @@ const BatchQueue = (
batchInterval = DEFAULT_BATCH_INTERVAL,
batchSize = DEFAULT_BATCH_SIZE,
batchLength = DEFAULT_BATCH_LENGTH,
- ...args
} = {}
) => {
const queue = [];
let isProcessing = false;
let timer = null;
- const sendBatchRequest = async (payloads) => {
- return taskFn(payloads, args);
+ const sendBatchRequest = async (payloads, batchArgs) => {
+ return taskFn(payloads, batchArgs);
};
const processQueue = async () => {
@@ -66,7 +65,8 @@ const BatchQueue = (
try {
const payloads = tasksToProcess.map((item) => item.payload);
- const responses = await sendBatchRequest(payloads);
+ const batchArgs = tasksToProcess[0].args;
+ const responses = await sendBatchRequest(payloads, batchArgs);
if (!Array.isArray(responses)) {
throw new Error("responses format error");
}
@@ -99,10 +99,10 @@ const BatchQueue = (
}
};
- const addTask = (data) => {
+ const addTask = (data, args) => {
return new Promise((resolve, reject) => {
const payload = data;
- queue.push({ payload, resolve, reject });
+ queue.push({ payload, resolve, reject, args });
if (queue.length >= batchSize) {
processQueue();
@@ -132,12 +132,12 @@ const queueMap = new Map();
/**
* 获取批处理实例
*/
-export const getBatchQueue = (key, taskFn, args) => {
+export const getBatchQueue = (key, taskFn, options) => {
if (queueMap.has(key)) {
return queueMap.get(key);
}
- const queue = BatchQueue(taskFn, args);
+ const queue = BatchQueue(taskFn, options);
queueMap.set(key, queue);
return queue;
};
diff --git a/src/views/Options/Apis.js b/src/views/Options/Apis.js
index 06d00e5..96ed66e 100644
--- a/src/views/Options/Apis.js
+++ b/src/views/Options/Apis.js
@@ -58,6 +58,7 @@ function TestButton({ api }) {
toLang: "zh-CN",
apiSetting: { ...api },
useCache: false,
+ usePool: false,
});
if (!text) {
throw new Error("empty result");
@@ -701,7 +702,7 @@ function ApiFields({ apiSlug, isUserApi, deleteApi }) {
>
{i18n("save")}
-
+