Я розробляю систему, з якої буду синхронізувати бізнес-дані з мобільного пристрою (у якого є вбудована програма), яка генерує дані та відсилає їх назад на сервер. Кожен рядок, синхронізований, генерує певний журнал бізнесу в базі даних.
Якщо те, що я синхронізую, генерує дані з датою (у межах даних синхронізації), що поступається останній даті модифікації моїх бізнес-даних, я повинен проігнорувати їх та просто додати базу даних журналу. Після опрацювання завантажених даних дані витягуються з бази даних та завантажуються на пристрій.
Через це завантаження відразу після написання синхронізація повинна бути синхронною. Можливо, все ще є модель читача / письменника, якщо щось подібне варто досить замінити моє існуюче рішення. Важливіше - мати можливість завантажувати актуальні дані. Ці дані отримані в цілому, на даний момент різниці не реалізовано (вони можуть з’явитися пізніше, але це не буде проблемою).
У мене може працювати декілька синхронізацій на одному бізнес-об’єкті, це малоймовірно, але може статися, і я вважаю за краще працювати з ним. Очікується, що синхронізація триватиме кілька секунд, але не декілька хвилин, якщо не використовувати вбудований мобільний додаток без повторної синхронізації протягом декількох днів.
Очікується, що обсяг синхронізованих даних не буде великим, як і процес синхронізації.
Отже, я використовую взаємне виключення щодо свого методу синхронізації, точніше, я використовую Java, і я ставлю синхронізований на метод запису не весь процес синхронізації, щоб не блокувати синхронізацію лише для читання.
Я хотів би знати :
- Якщо цей спосіб має сенс? Поки гучність і час процесу синхронізації залишаються прийнятними.
- Загалом, на які поняття слід звернути увагу. Бонус: якщо в модулі Spring є реалізація цих концепцій.