Разумный HTTP значения тайм-аута POST для использования, программно выпуская запросы?

std::vector::size() возвращает целое число без знака. Если оно равно 0 и вы вычитаете 1, оно уменьшается и становится огромным значением (в частности, std::numeric_limits::max()). Сравнение работает хорошо, но вычитание дает значение, которое вы не ожидали.

Подробнее о потере без знака (и переполнении) см .: Переполнение и переполнение C ++

Самое простое исправление для вашего кода, вероятно, if (1 < v.size()).

9
задан Community 23 May 2017 в 10:27
поделиться

2 ответа

Я рекомендовал бы настроить тест, поскольку существует слишком много факторов, включенных для предоставления значения, которое всегда будет разумно.

Запрос POST отправляет данные, которые будут обработаны. Сколько времени с обработкой берут? Это будет конкретным приложением/данными.

Где хост? Пользователь предоставляет URL, так, чтобы было неизвестно. Мы не можем знать то, на что трафик похож между Вашим приложением и хостом. Мы не можем знать загрузку сервера хоста.

По существу нет никакого универсального разумного тайм-аута. Необходимо использовать собственное лучшее суждение на основе определенных потребностей. Настройте тест и использование что определить Ваши пределы.

5
ответ дан 4 December 2019 в 23:08
поделиться

Большинство библиотек имеет тайм-аут подключения и тайм-аут чтения. Таким образом, тайм-аут между попыткой соединиться с удаленным сервером и тайм-аутом после отправления запроса, что они должны ожидать ответа.

Если бы это - локальный веб-сервис, я установил бы тайм-аут подключения низко, 1 секунда, или меньше если Ваша библиотека поддерживает его. Если удаленный сервис, с которым Вы соединяетесь, недоступен, по моему скромному мнению, лучше для возврата ответа пользователю сразу, чем позволить всем рабочим потокам блокироваться на том удаленном сервисе, вызывая другие восходящие ошибки.

Что касается тайм-аута чтения, который более хитер, Вам нужен он для минимума, таким образом, Вы не исчерпываете свое объединение рабочих, которые ожидают удаленного сервиса для возврата, но Вы также не хотите это настолько низко, что это закрывает соединение прежде, чем считать ответ. Это - что-то, что необходимо будет протестировать, затем отследить как метрика, когда система работает.

2
ответ дан 4 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: