Поэтому во внешнем интерфейсе я вызываю API /v1/translate и передаю параметры запроса, такие как {translate_ids: [1,2,3,4,5, ... 100000] и в Node JS я получаю параметры и перевожу их, например,
Код: Выделить всё
exports.translateSelectedString = async (req, res) => {
try {
const { translate_ids } = req.body;
const records = await models.translate.findAll({ attributes: ["str_value"], where: { id: translate_ids } });
const translations = await Promise.all(records.map(async (record) => {
await getTranslationTextFromTranslateApi(record.str_value, 'eng', 'fra');
}));
return res.status(200).json({ status: "success", data: translations });
}
catch (exception) {
return res.status(500).json({ status: "failure", message: exception.message });
}
};Здесь getTranslationTextFromTranslateApi — это функция, которая вызывает другой URL-адрес, который на самом деле переведите фактический полученный текст, и функция будет выглядеть следующим образом:
Код: Выделить всё
async function getTranslationTextFromTranslateApi(text, fromLanguage, toLanguage) {
try {
let url = `https:///v1/TranslateText/direction=${fromLanguage}-${toLanguage}?outputFormat=json`;
let response = await axios.post(url, text, { headers: headers });
} catch (error) {
console.error('An error occurred while processing your request:', error.response ? error.response.data : error.message);
}
}Так что это вызывает проблемы с производительностью, потому что я передаю 100000 (100 тысяч идентификаторов) и используя модель, я проверяю, нужно ли перевести соответствующий текст, и передаю текст с помощью fromLanguage и targetLanguage в другой API перевода, который переводит каждый текст. Таким образом, для меньшего количества записей, таких как 10 или 20 записей, он работает нормально, но для этих 100 тысяч данных это вызывает проблемы с производительностью, например, время ожидания запроса API истекает.
Как я могу преодолеть эту проблему с производительностью при обработке большего количества записей, которая была отправлено во внешний API?
Здесь для API перевода я имею в виду https://www.reverso.net/text-translation
Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-nodejs
Мобильная версия