0

基本的に、SYNC 機能を実装したいと考えています。インターネット接続が利用できない場合、データはローカルの sqlite データベースに保存されます。インターネット接続が利用できるときはいつでも、SYNC が動作します。

たとえば、次のように言います。5 件のレコードがローカルに保存され、インターネット接続が利用可能になります。サーバーを更新したい。だから、私が現在していることは次のとおりです。

  1. 最初のレコードをサーバーに投稿します。
  2. 最初のリクエストが成功するまで待ちます。
  3. 最初のレコードがサーバー上で更新され、2 番目の要求が実行できるようになったことを示す、ローカルの NSNotification をルーチンに投稿します。
  4. ルーチンは、サーバー上で 2 番目のポスト リクエストを起動するなど...

質問: このアプローチは正しく、SYNC 機能を実装するのに十分効率的ですか? または私はそれに変更する必要がありますか??

注: 同期されるレコードには数の制限はありません。

4

1 に答える 1

1

保存するデータの要件によって異なります。バックアップだけなら問題ないはずです。5 つのレコードが何らかの形で相互に依存しており、別のデバイス/アプリケーションからこのデータにアクセスする必要がある場合は、サーバー側で 5 つのレコードすべてが書き込まれるか、まったく書き込まれないように注意する必要があります。そうしないと、3 つだけが書き込まれると、一貫性のない状態になります。他のユーザーもサーバー上でこれらのデータを同時に読み書きしている場合は、書き込みの前にすべてのレコードに何らかのロックを実装する必要があり、誰かが他の人の変更を上書きしようとしたときに競合を処理する方法も決定する必要があります。

于 2013-02-12T00:56:49.627 に答える