Я разрабатываю систему, из которой я буду синхронизировать бизнес-данные с мобильного устройства (у которого есть встроенное приложение), которое генерирует данные и отправляет их обратно на сервер. Каждая синхронизированная строка генерирует определенный бизнес-журнал в базе данных.
Если то, что я синхронизирую, генерирует данные с датой (в пределах данных синхронизации) ниже даты последнего изменения моих бизнес-данных, я должен проигнорировать это и просто добавить базу данных для входа. Как только загруженные данные обработаны, данные извлекаются из базы данных и загружаются на устройство.
Из-за этой загрузки сразу после записи синхронизация должна быть синхронной. Можно по-прежнему иметь шаблон чтения / записи, если что-то подобное стоит того, чтобы заменить мое существующее решение. Более важно иметь возможность загружать новейшие данные. Эти данные извлекаются как единое целое, в настоящий момент не реализовано diff (оно может появиться позже, но это не будет проблемой).
У меня может быть несколько синхронизаций на одном и том же бизнес-объекте, это маловероятно, но может случиться, и я предпочитаю иметь возможность справиться с этим. Ожидается, что синхронизация продлится несколько секунд, но не несколько минут, если только в течение нескольких дней не используется встроенное мобильное приложение без повторной синхронизации.
Объем синхронизированных данных не ожидается большим, как и процесс синхронизации.
Поэтому я использую взаимное исключение в моем методе синхронизации, точнее говоря, я использую Java, и я включил синхронизированный метод записи, а не весь процесс синхронизации, чтобы не блокировать синхронизацию только для чтения.
Я бы хотел знать :
- Если этот способ имеет смысл? Пока объем и время процесса синхронизации все еще приемлемы.
- В общем, какие концепции я должен смотреть. Бонус: если есть какая-либо реализация этих концепций в модуле Spring.