SocialGO

Обработка ошибок API, повторы и идемпотентность

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

Проектируйте с расчётом на сбои, а не только на удачный сценарий. Самый опасный случай неоднозначный: запрос, который мог как успешно выполниться, так и нет, прежде чем соединение оборвалось.

Используйте ключ идемпотентности в запросах заказа, чтобы безопасный повтор после тайм-аута возвращал существующий заказ, а не создавал повторное списание. Повторяйте временные ошибки (лимиты запросов, временные 5xx) с возрастающей задержкой и ограничением сверху.

Быстро завершайте работу при постоянных ошибках, таких как некорректный запрос или недостаток средств, и выносите их на рассмотрение человека. Их повтор лишь тратит время. Логируйте каждый запрос и ответ вместе с ID заказа, чтобы позже можно было всё сверить.

Была ли эта статья полезной?

Похожие статьи

Остались вопросы?

Не нашли то, что искали? Наша команда будет рада помочь.

Среднее время ответа короткое, на большинство обращений мы отвечаем в тот же день.

Назад в Центр помощи