Зміни в документі Batch запити
Остання зміна 2024/05/16 18:58 автором Ashterix
Підсумок
-
Властивості сторінки (1 змінено, 0 додано, 0 видалено)
Подробиці
- Властивості сторінки
-
- Вміст
-
... ... @@ -202,3 +202,24 @@ 202 202 1. **Зручність і ефективність**: Залежні запити дозволяють виконувати складні операції з мінімальними зусиллями, забезпечуючи правильну послідовність виконання запитів. 203 203 1. **Зменшення кількості мережевих запитів**: Усі запити об'єднуються в один, що знижує навантаження на мережу. 204 204 1. **Гнучкість**: Можливість створювати складні сценарії запитів без необхідності додаткових налаштувань чи змін на бекенді. 205 + 206 += Як це працює = 207 + 208 +Механізм обробки batch запитів працює асинхронно. 209 + 210 +Отримуючи масив запитів RPC Server створює чергу з [[Symfony Process>>https://symfony.com/doc/current/components/process.html]], тобто запускає CLI команди, які обробляються асинхронно. В циклі while стан процесів перевіряється, і якщо отримано результат, він додається до масиву відповідей. Якщо ж відповіді немає до закінчення таймауту, повертається помилка про те, що запит не оброблено. 211 + 212 +== Алгоритм: == 213 + 214 +* Batch запит розбивається на окремі запити, кожен з яких додається до черги. 215 +* В циклі перевіряється наявність об’єктів у черзі. 216 +* Для кожного об'єкту черги перевіряється, чи завершився процес. 217 +* Якщо процес завершився, результат додається до масиву відповідей, а процес видаляється з черги. 218 +* Якщо процес не завершився і таймаут ще не вийшов, цикл продовжується. 219 +* Якщо таймаут вийшов до отримання результату, для конкретного запиту повертається помилка про те, що запит не оброблено. 220 + 221 +Щоб збільшити таймаут у batch запиті, в параметрах конкретного запиту можна вказати додатковий службовий параметр {{code language="none"}}$rpc.timeout{{/code}}. За замовчуванням значення таймауту становить 10 секунд. 222 + 223 +Це дозволяє налаштувати тривалість очікування результатів від процесів, що може бути важливо для обробки складних або тривалих запитів. 224 + 225 +Таким чином, механізм обробки batch запитів забезпечує асинхронну обробку з можливістю налаштування таймауту для кращої гнучкості та продуктивності.