Skip to content
Arthur Chistyak edited this page Sep 12, 2016 · 4 revisions

Синхронизация

  1. храним last__sync__time - самая большая метка времени всех кортежей всех таблиц, по умолч 0
  2. Синхронизация по включению приложения

При синхронизции:

  1. Передаём last__sync__time
  2. Получаем все кортежи всех таблиц пользователя, где sync_status кортежа больше last__sync__time + Серверную Метку Времени
  3. Получаем самую большую метку времени и записываем её в last__sync__time без разницы

При обновлении кортежей:

  1. Изменяем кортеж локально, обновляя его метку времени с учётом разницы Серверной метки и last__sync__time
  2. Отсылаем в update полностью весь кортеж
  3. Сервер решает что важнее: Локальное время или текущее серверное для этого кортежа
  4. Возвращается 200 + Серверное время метки
  5. Обновляем кортеж
  6. Обновляем last__sync__time

——————————————————————

/sync

Request: token, user__id, device__id, last__sync__time

Response: все кортежи всех таблиц пользователя, где time__sync > last__sync__time

———————————————————————

/update

/add

/delete

Request: кортеж

Response: Этот же кортеж с серверной меткой

Clone this wiki locally