Как расставить приоритеты в механизмах синхронизации, работающих с общими данными в Android?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как расставить приоритеты в механизмах синхронизации, работающих с общими данными в Android?

Сообщение Anonymous »

У меня есть приложение для Android с тремя различными механизмами синхронизации, которые работают независимо, каждый из которых использует свой собственный CoroutineScope. Все эти синхронизации зависят от данных одного и того же типа (например, данных инвентаризации), хранящихся в базе данных. В настоящее время я использую DataStore для хранения данных, но планирую перейти на Room из-за проблем с производительностью при работе с большими наборами данных.
Проблема вот в чем:
Каждая синхронизация механизм обрабатывает данные по-разному (например, загрузка из API, локальная фильтрация, сопоставление и т. д.).
Второй механизм синхронизации, который получает самые последние данные из API, должен иметь наивысший приоритет. Это означает, что он всегда должен следить за тем, чтобы обновления данных не были перезаписаны другими механизмами синхронизации, работающими с устаревшими данными.
Вот пример сценария:
00:01: начинается загрузка второй синхронизации. самые последние данные из API и начать процесс сохранения в локальной базе данных.
00:02: При первой синхронизации начинается обработка данных, полученных из локальной базы данных, которые по-прежнему являются старыми данными.< /p>
00:03: Вторая синхронизация завершается, новейшие данные сохраняются в базе данных.
00:04: Первая синхронизация завершает обработку и база данных перезаписывается устаревшими данными. .
В конце концов я получаю устаревшие данные в базе данных, поскольку первая синхронизация перезаписывает более новые данные, сохраненные при второй синхронизации.
Мои вопросы:
Как я могу отдать приоритет второму механизму синхронизации, чтобы никакая другая синхронизация не обрабатывала устаревшие данные и не перезаписывала их обновления?
Есть ли эффективный способ справиться с этим сценарием?
Существуют ли в Android рекомендуемые шаблоны или лучшие практики (например, использование Mutex, общих флагов или очередей) для синхронизации независимых механизмов доступа к общим данным?
Любые рекомендации или примеры будут с благодарностью оценены. .

Подробнее здесь: https://stackoverflow.com/questions/792 ... in-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»