Още една публикация от мен, свързана с Oracle Offline Persistence Toolkit. Вече описах как слушателят след заявка може да бъде полезен за четене на данни за отговор след синхронизиране — Oracle Offline Persistence Toolkit — След слушател за синхронизиране на заявки. Днес ще обясним кога слушателят преди заявка може да бъде полезен. Същото като след слушателя на заявка, той се дефинира по време на регистрацията на мениджъра на постоянство:

Преди заявка слушателят трябва да върне обещание. Можем да контролираме разрешеното действие. Например, ако няма нужда от актуализиране на заявка, ние просто връщаме продължи. Ще трябва да актуализираме заявка, ако един и същ ред се актуализира няколко пъти по време на синхронизиране. Стойността на индикатора за промяна трябва да се актуализира в полезния товар на заявката. Ние четем последната стойност на индикатора за промяна от масива, инициализиран в слушателя след заявка. Полезният товар на заявката се преобразува в JSON, стойността се актуализира и след това създаваме нова заявка и я разрешаваме с повтаряне. API позволява да се предостави нова заявка, като се замени оригиналната:

Ето случая на употреба. Докато сте офлайн — актуализирайте стойността:

Докато оставате офлайн, актуализирайте отново същата стойност:

Трябва да проследим изпълнените заявки по време на синхронизация, когато влизаме онлайн. Първата заявка, инициирана от първата промяна, използва стойност на индикатора за промяна 292:

Втората заявка използва актуализирана стойност на индикатора за промяна 293:

Без логика за приемане на заявка преди и след, втората заявка ще се изпълни със същата стойност на индикатора за промяна като първата. Това би довело до конфликт на данни в бекенда.

Примерен код на приложение е достъпен на GitHub.

Първоначално публикувано в andrejusb.blogspot.com на 2 октомври 2018 г.