これは私が今同期を実行する方法です:
* get preference "timestamp" and save to variable TIMESTAMP
* save current time to preference "timestamp" (2)
* query server side items with update time bigger than TIMESTAMP
* for each item
* compare with local item's per item update_time
* if server side is newer
* update local
* else if local is newer
* set item update time to now (1)
* upload
* save back
* else if equal
* do nothing
*
問題は、次回同期するときに、前回同期したアイテムが [何もしない] セクションに表示されることですが、私のアプリはモバイル アプリであるため、大量のデータの無駄があります。
アイテムの更新時刻を に設定することTIMESTAMP
を考えましたが、2 つのクライアントが同時に同期している状況があり、アイテムの実際のアップロード時刻が更新時刻フィールドの時刻ではないため、同期がずれている可能性があると思います。 1 つのクライアントが 2 つの時間の間にサーバーをチェックした場合、この項目は見逃されます。
Google Tasks API を使用していますが、サーバー側の実装を変更できません。
助言がありますか?