mirror of
https://github.com/vbondarevsky/Connector.git
synced 2024-11-28 08:58:44 +02:00
Повторные попытки вызова HTTP с экспоненциальной задержкой #35
This commit is contained in:
parent
7c993bf3e5
commit
9cfaf8d580
31
README.md
31
README.md
@ -26,6 +26,7 @@
|
||||
- Установка и чтение Cookies
|
||||
- Работа в рамках сессии с сохранением состояния (cookies, аутентификация и пр.)
|
||||
- Переиспользование `HTTPСоединение` в рамках сессии
|
||||
- Настраиваемые повторные попытки соединения/отправки запроса с экспоненциальной задержкой
|
||||
- Работает в т.ч. и на мобильной платформе
|
||||
- И многое другое
|
||||
|
||||
@ -395,3 +396,33 @@ Cookies.Добавить(Новый Структура("Наименование
|
||||
- Сервер вернет нужный нам результат в виде `html`
|
||||
|
||||
Далее используя `Сессия` можно выполнять запросы к серверу и скачивать обновления.
|
||||
|
||||
## Повторные попытки соединения/отправки запроса
|
||||
**Коннектор** может автоматически выполнять повторные попытки соединения/отправки запроса с задержкой.
|
||||
Это бывает полезно если:
|
||||
- Соединение нестабильное
|
||||
- Сервер перегружен и может "пятисотить"
|
||||
- Сервер находится на обслуживании (перезагрузка, изменение конфигов, обновление и т.п.)
|
||||
- Сервер ограничивает количество запросов от клиента
|
||||
|
||||
Включить повторы можно с помощью параметра `ДополнительныеПараметры.МаксимальноеКоличествоПовторов`, задав значение больше 0.
|
||||
|
||||
Параметр `ДополнительныеПараметры.МаксимальноеВремяПовторов` позволяет ограничить суммарное время (таймауты + задержки между попытками).
|
||||
Значение по умолчанию: 10 мин.
|
||||
|
||||
Длительность задержки между попытками:
|
||||
- Растет экспоненциально (1 сек, 2 сек, 4 сек, 8 сек, 16 сек, ...). Можно регулировать с помощью параметра
|
||||
`ДополнительныеПараметры.КоэффициентЭкспоненциальнойЗадержки`
|
||||
- Для кодов состояний `413`, `429` или `503` в качестве задержки используется значение заголовка `Retry-After` (длительность в секундах или конкретная дата).
|
||||
|
||||
Параметр `ДополнительныеПараметры.ПовторятьДляКодовСостояний` позволяет задать коды состояний, при которых нужно выполнять повтор.
|
||||
Если параметр не задан, повтор будет выполняться для всех кодов состояний >=`500`.
|
||||
|
||||
```bsl
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("МаксимальноеКоличествоПовторов", 5);
|
||||
ДополнительныеПараметры.Вставить("Заголовки", Заголовки);
|
||||
|
||||
URL = "http://127.0.0.1:5000/retry_after_date";
|
||||
Ответ = КоннекторHTTP.Get(URL, Неопределено, ДополнительныеПараметры);
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user