-
Notifications
You must be signed in to change notification settings - Fork 1
Sync
Arthur Chistyak edited this page Sep 12, 2016
·
4 revisions
- храним last__sync__time - самая большая метка времени всех кортежей всех таблиц, по умолч 0
- Синхронизация по включению приложения
- Передаём last__sync__time
- Получаем все кортежи всех таблиц пользователя, где sync_status кортежа больше last__sync__time + Серверную Метку Времени
- Получаем самую большую метку времени и записываем её в last__sync__time без разницы
- Изменяем кортеж локально, обновляя его метку времени с учётом разницы Серверной метки и last__sync__time
- Отсылаем в update полностью весь кортеж
- Сервер решает что важнее: Локальное время или текущее серверное для этого кортежа
- Возвращается 200 + Серверное время метки
- Обновляем кортеж
- Обновляем last__sync__time
——————————————————————
/sync
Request: token, user__id, device__id, last__sync__time
Response: все кортежи всех таблиц пользователя, где time__sync > last__sync__time
———————————————————————
/update
/add
/delete
Request: кортеж
Response: Этот же кортеж с серверной меткой