Я синхронизирую объекты между двумя устройствами. Объекты имеют свойство lastModified
. Если оба устройства изменили объект, то при следующей синхронизации версия объекта с самой последней lastModified
будет выбрана на обоих устройствах. Поэтому мы не делаем мелкозернистое слияние, только слияние «самой последней версии».
Проблема заключается в следующем. Когда одно устройство получает список измененных объектов, оно не может надежно сравнить lastModified полученных объектов с его собственным, поскольку системное время на обоих устройствах может быть разным.
Я подумал, чтобы каждое устройство отправляло свою текущую дату / время во время синхронизации. Затем каждый рассчитывает разницу между удаленным временем и местным временем, чтобы правильно сравнить даты. Но если существует задержка между отправкой даты и получением ее удаленным устройством, это вызывает некорректное сравнение с объектами, которые были изменены одновременно (или очень близко друг к другу во времени). то есть оба устройства думают, что удаленный объект более новый, и в результате они получают разные объекты.
Надеюсь, я объяснил это достаточно ясно.
Должно быть общее решение этой проблемы, но мой мозг ничего не придумывает. Какие-либо предложения? Заранее спасибо ...