Я разработал приложение для выставления счетов, используя Grails3. Требование состоит в том, чтобы использовать это приложение как в сети, так и в автономном режиме, когда подключение к Интернету прерывается. При использовании автономных данных данные хранятся в локальной базе данных Mysql, а когда я переключаюсь в онлайн, автономные данные Mysql должны быть обновлены до моей удаленной базы данных Mysql. Какова наилучшая стратегия для реализации этого варианта использования. Есть ли какой-либо подключаемый модуль Grails для этого сценария.
Как обновить автономные данные mysql до онлайн-данных mysql в приложении с помощью Grails
Ответы (1)
Один из моих друзей предложил рассмотреть следующие варианты использования:
Если вы предполагаете, что количество времени, в течение которого система будет находиться в автономном режиме, довольно мало, вы можете хранить данные в памяти и отправлять их, когда система снова будет подключена к сети.
Если вы считаете, что данные могут стать большими с автономным хранилищем, вы можете использовать FLAT-файл для хранения ваших данных, а затем прочитать этот файл и выполнить запись в удаленной базе данных mysql.
Вы также можете использовать возможности репликации mysql для репликации ваших данных и иметь как локальные, так и удаленные экземпляры mysql. Вам придется потратить некоторое время на то, как это сделать.
Используйте механизм очереди сообщений, чтобы ставить в очередь ваши запросы в автономном режиме, а затем записывать в удаленную базу данных в той же последовательности, когда он находится в сети.
Используйте базу данных в памяти или локальную базу данных h2, если ваши запросы sql не слишком сложны. Напишите задание, которое периодически записывает данные в ваш удаленный экземпляр.