Как избежать условий гонки с помощью запросов Http - PullRequest
0 голосов
/ 21 сентября 2019

У меня проблема в том, что веб-интерфейс отправляет запрос на установку на сервер каждый раз, когда изменяется запись.

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

  1. PUT {enabled: [2, 4]} // initial
  2. PUT {enabled: [2]} // пользователь удаляет 4
  3. PUT {enabled: [2, 4]} // пользователь добавляет 4 обратно (выполняется поздно после 4)
  4. PUT {enabled: [2]} // снова удаляет 4 - сервер выбрасывает ошибку, поскольку 4 уже удалено из 2, а выполнение 3 не завершено.

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

...