Как обрабатывать вызов внешнего API с большими данными в Nodejs?Javascript

Форум по Javascript
Ответить
Anonymous
 Как обрабатывать вызов внешнего API с большими данными в Nodejs?

Сообщение Anonymous »

Во внешнем интерфейсе я использую React Js, а во внутреннем — Node Js.
Поэтому во внешнем интерфейсе я вызываю 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»