Python советы по работе с нестабильным `API` - PullRequest
0 голосов
/ 25 января 2019

Мое приложение использует стороннюю API.Он регулярно опрашивает API на нескольких конечных точках.В также делает некоторые дополнительные вызовы API на основе взаимодействия пользователя с приложением.API очень медленный, большинство запросов занимает больше секунды.API очень нестабильно - тайм-ауты являются общими, 500 ошибки являются общими, сеансовый ключ часто истекает случайным образом (даже если определенная конечная точка keep_alive вызывается регулярно).Нет возможности использовать другой API.

. Каковы оптимальные методы для работы с таким API?

Как отключить одновременные запросы к этому API наrequests уровень.Итак, если один запрос ожидает ответа - второй запрос не инициируется?Это должно быть сделано для каждого домена, другие запросы к другим доменам все равно должны выполняться одновременно.

Любые другие настройки для переключения с requests, чтобы упростить работу с таким API

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Каковы лучшие практики для работы с таким API?

В SRE мы почти всегда предполагаем, что API никогда нельзя доверять. Из-за этого существует ряд шаблонов, которые могут помочь:

Ссылки:

0 голосов
/ 25 января 2019

Если ваша основная проблема заключается в сериализации вызовов этого API в многопоточном (или многопроцессорном) приложении, простым способом было бы заключить его в новый модуль и последовательно использовать блокировку в этом модуле.

Если разные клиенты могут использовать веб-API одновременно и вам необходимо сериализовать запросы по соображениям производительности, вы можете представить себе выделенный прокси-сервер сериализации.Просто используйте вышеуказанный метод в прокси.

...