私は、データを生成してサーバーに送信するモバイルデバイス(アプリケーションが埋め込まれている)からのビジネスデータを同期するシステムを設計しています。同期される各行は、データベースに特定のビジネスログを生成します。
同期するデータによって、ビジネスデータの最終変更日よりも古い日付(同期データ内)のデータが生成された場合、それを無視して、ログをデータベースに追加するだけです。アップロードされたデータが処理されると、データベースからデータがフェッチされ、デバイスにダウンロードされます。
書き込み直後のこのダウンロードのため、同期は同期でなければなりません。このような何かが私の既存のソリューションを置き換えるのに十分な価値がある場合は、まだリーダー/ライターのパターンを持つことが可能です。より重要なことは、最新のデータをダウンロードできることです。そのデータは全体としてフェッチされ、現時点では差分は実装されていません(後で来る可能性がありますが、問題はありません)。
同じビジネスオブジェクトで複数の同期を実行している可能性があります。それは起こりそうにありませんが、起こり得、それを処理できることを望んでいます。組み込みモバイルアプリケーションを数日間再同期せずに使用しない限り、同期は数秒続くことが予想されますが、数分は続きません。
同期されるデータの量は、同期プロセスも大きくなることは想定されていません。
つまり、同期の方法で相互排除を使用することになります。より正確には、Javaを使用し、読み取り専用の同期をブロックしないように、同期プロセス全体ではなく、書き込みメソッドに同期を設定します。
私が知りたいのですが :
- この方法が理にかなっていますか?同期プロセスの量と時間は許容範囲です。
- 一般的に、どのような概念を検討する必要がありますか。おまけ:Springモジュールにこれらの概念の実装がある場合。