Вступить в клуб →
сложнаявопросСеть: Retrofit, OkHttp и сериализация

После внедрения автоповторов у части пользователей заказы создаются дважды

class RetryInterceptor : Interceptor {
    override fun intercept(chain: Interceptor.Chain): Response {
        repeat(2) {
            try { return chain.proceed(chain.request()) } catch (e: IOException) { }
        }
        return chain.proceed(chain.request())
    }
}

Повторы спасли загрузку каталога в метро, но в поддержку пришли жалобы: за один заказ списали деньги дважды. Логи сервера показывают два POST /orders с разницей в 12 секунд. Как исправить, не отказываясь от повторов?

  • Ключ идемпотентности в заголовке POST-запроса
  • Повторять POST только при коде ответа 500
  • Уменьшить число повторов с трёх до двух
  • Добавить паузу между повторами в 5 секунд

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела