Estoy diseñando un sistema desde el cual sincronizaré datos comerciales desde el dispositivo móvil (que tiene una aplicación integrada) que genera datos y los envía de vuelta al servidor. Cada línea sincronizada genera un registro de negocios específico en la base de datos.
Si lo que sincronizo genera datos con una fecha (dentro de los datos de sincronización) inferior a la fecha de la última modificación de mis datos comerciales, debo ignorarlos y simplemente agregar la base de datos de inicio de sesión. Una vez que se procesan los datos cargados, los datos se obtienen de la base de datos y se descargan al dispositivo.
Debido a esta descarga justo después de escribir, la sincronización debe ser sincrónica. Todavía es posible tener un patrón de lector / escritor si algo como esto vale lo suficiente como para reemplazar mi solución existente. Lo más importante es poder descargar datos actualizados. Esa información se obtiene como un todo, no hay diferencia implementada en este momento (puede llegar más tarde, pero eso no será un problema).
Es posible que tenga varias sincronizaciones en el mismo objeto comercial en ejecución, es poco probable pero puede suceder y prefiero poder manejarlo. Se espera que la sincronización dure algunos segundos pero no algunos minutos, a menos que use la aplicación móvil incorporada sin resincronización durante algunos días.
No se espera que el volumen de datos sincronizados sea grande, ni el proceso de sincronización.
Así que termino usando una exclusión mutua en mi método de sincronización, más precisamente, estoy usando Java y puse un método de escritura sincronizado, no todo el proceso de sincronización, para no bloquear la sincronización de solo lectura.
Me gustaría saber :
- Si esto tiene sentido? Mientras el volumen y el tiempo del proceso de sincronización sigan siendo aceptables.
- De manera general, qué conceptos debo mirar. Bonificación: si hay alguna implementación de estos conceptos en un módulo Spring.