Как обрабатывать время не синхронизировано между серверами - PullRequest
0 голосов
/ 05 ноября 2018

Мне любопытно, если у кого-нибудь есть лучшие практики или предложения для моей ситуации:

  • сервер, на котором я не имею никакого влияния на данные о предложениях через REST.
  • Данные действительны только для определенного периода времени и регулярно обновляются.
  • Время следующего обновления известно через поле заголовка http. В шапке также указано текущее время сервера.
  • время на сервере выключено несколько секунд (кажется, это не синхронизируется через NTP)

Моя задача заключается в следующем:

  • получить новые данные как можно короче после их обновления сервером

мой вопрос:

  • Должен ли я просто сохранять смещения в секундах между временем моего сервера и целевым сервером для каждого запроса и соответственно корректировать свое следующее нажатие?
  • Должен ли я создать какой-то "другой сервер" -час, который регулярно синхронизируется с часами другого сервера и имеет смещение для запуска моего следующего нажатия?

О чем мой вопрос: обработка времени / часового пояса.

Лучшее решение позволило бы мне получить данные сразу после их обновления с другого сервера.

С наилучшими пожеланиями, Florian

1 Ответ

0 голосов
/ 05 ноября 2018

Если время на другом сервере отличается от вашего, тогда я не думаю, что вам следует пытаться «синхронизировать» свое время с помощью смещений и т. Д. Это может сработать, но зная, что у вас нет правильной синхронизации, оно выиграло не быть надежным (разница во времени может измениться в любое время).

Если сторонний REST-сервер предоставляет вам текущее время и время их следующего обновления данных (также в отношении времени их сервера), то вы можете рассчитать, когда запрос должен соответствовать времени, которое не учитывается. время вашего сервера. Например, если их текущее время - 12:00:07, а следующее обновление - 12:00:10, то вы знаете, что должны сделать следующий запрос через 3 секунды. Просто запланируйте его на ваш предыдущий запрос в соответствии с ожидаемым временем обновления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...