2013-09-12 2 views
0

У меня есть база данных mongo с коллекцией объектов, скажем, заказов.Синхронизация данных по нескольким устройствам

Несколько мобильных устройств сохраняют и заказывают заказы на эту коллекцию.

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

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

Каким будет наилучший способ достижения этого?

ответ

1

Один из вариантов - выполнить дифференциальное обновление.

Вам нужно будет записать время последнего обновления каждого устройства в БД и время каждой модификации в БД.

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

Кроме того, последнее примечание, синхронизирующее каждые 3 секунды, разряжает батарею довольно быстро. Возможно, вам стоит подумать только об обновлении устройства, когда устройству есть что-то отправить на сервер. т.е. отправить новый заказ, а ответ сервера содержит все новые заказы.

+0

Мне нужно обновлять каждые 3 секунды, потому что мне нужно иметь новые данные как можно ближе к реальному времени. Надеюсь, устройство сможет прослужить 12 часов (устройства ios) – deloki

Смежные вопросы