стоїть завдання паерекласти описи 7000 + товарів, при чому описи розбиті на частини. Загалом виходить ~40 тисяч записів різного калібру.
Переклад здійснюється через api відкритого сервісу, проте якщо штурмувати ресурс 40 тисяч разів з кожним окремим записом, то сервер нас культурно полшле…
SELECT productNativeDesc, LENGTH(productNativeDesc) AS length FROM ikeaProducts Where productSKU = '20129672'
Поза тим не все так погано: записи є короткими, по 300-1000 знаків, а ліміт перекладу через один запит у нас стоїть в 10000 знаків.
Відтак, завдання зводиться до того, щоб згрупувати увесь непотріб так, щоб він не випадав з рамок пристойності.
Логіка проста:
- обходимо поля з описом;
- по черзі додаємо їх до кошику, з прив’язкою до товару;
- через LENGTH(productNativeDesc) визначаємо, чи не перевищуватиме наш кошик свій ліміт в 10000 знаків з кожним новим описом;
- як тільки доходимо до межі, формуємо відправлення на переклад і вертаємось по новій.
Взаємодія з індивідуальним перекладом розтягується на три дні, через блокування перевищення лімітів. Пізніше зазначу, скільки займає оновлений алгоритм.