Вопрос:
Мне сказали, что лучшая практика гласит, что длительные HTTP-запросы должны быть превращены в более короткие асинхронные запросы с механизмом опроса для завершения.
Почему?
Важное различие:
Я работаю над API веб-сервисов. Это не предназначено для вызова браузерами (которые зависают при загрузке), а богатыми клиентами (которые асинхронно называют удаленные службы) и скриптами (которые могут выполнять один и тот же асинхронный трюк)
Мотивация:
Я хотел бы знать, потому что я пытаюсь принять решение относительно того, когда запрос должен быть сделан асинхронным, какова точка отсечки? Я работаю над веб-интерфейсом API, у которого есть запросы, которые берут от 0,001 секунды до 400 секунд (и везде между ними) в зависимости от запроса (а не от параметров, а от какого фактического метода они звонят).
Я мог бы сделать все асинхронным (за исключением опроса для завершения команды), но это усложняет работу, выполняемую клиентами API (т.е. получение результатов от запросов, опрос для завершения и т.д.).
Насколько я знаю, я мог бы сделать все синхронным, так как столько же работы делается в любом случае, поэтому кажется, что загрузка будет схожей.
Кроме того, все веб-службы, которые я использовал, похоже, следуют гибридной модели, поэтому они должны как-то принимать решение.
Единственный способ, которым я действительно мог ответить на этот вопрос, - это знать, почему эта лучшая практика существует.