Saya merancang sistem tempat saya akan menyinkronkan data bisnis dari perangkat seluler (yang memiliki aplikasi tertanam) yang menghasilkan data dan mengirimkannya kembali ke server. Setiap baris yang disinkronkan menghasilkan log bisnis tertentu dalam database.
Jika apa yang saya sinkronkan menghasilkan data dengan tanggal (dalam data sinkronisasi) lebih rendah daripada tanggal modifikasi terakhir dari data bisnis saya, saya harus mengabaikannya dan hanya menambahkan basis data login. Setelah data yang diunggah diproses, data diambil dari database dan diunduh ke perangkat.
Karena pengunduhan ini tepat setelah menulis, sinkronisasi harus sinkron. Masih mungkin untuk memiliki pola pembaca / penulis jika sesuatu seperti ini cukup layak untuk menggantikan solusi saya yang ada. Yang lebih penting adalah dapat mengunduh data terbaru. Data itu diambil secara keseluruhan, tidak ada perbedaan yang diimplementasikan saat ini (mungkin akan datang kemudian tetapi itu tidak akan menjadi masalah).
Saya mungkin memiliki beberapa sinkronisasi pada objek bisnis yang sama berjalan, itu tidak mungkin tetapi bisa terjadi dan saya lebih suka untuk dapat menanganinya. Sinkronisasi diharapkan berlangsung selama beberapa detik tetapi tidak beberapa menit, kecuali menggunakan aplikasi seluler tertanam tanpa sinkronisasi ulang selama beberapa hari.
Volume data yang disinkronkan tidak diharapkan besar, begitu juga proses sinkronisasi.
Jadi saya akhirnya menggunakan saling pengecualian pada metode sinkronisasi saya, lebih tepatnya, saya menggunakan Java dan saya menempatkan sinkronisasi pada metode penulisan bukan seluruh proses sinkronisasi untuk tidak memblokir sinkronisasi read-only.
Saya ingin tahu :
- Jika cara ini masuk akal? Selama volume dan waktu proses sinkronisasi masih dapat diterima.
- Secara umum, konsep apa yang harus saya perhatikan. Bonus: jika ada implementasi konsep-konsep ini dalam modul Spring.