-
Notifications
You must be signed in to change notification settings - Fork 0
ObalkyKnih realizace PUSH API
cosmo-cz edited this page Dec 16, 2016
·
1 revision
- Na www.obalkyknih.cz je registracna stranka/settings_push.
- Kniznica si zaregistruje na aku URL a port sa budu zasielat zaznamy.
- Specifikuje e-mail, na ktory chce zaslat spravu v pripade nepodarenej synchronizacie (nepovinny udaj).
- Zvoli si checkbox ci chce cely kontajner. true -> posle sa cely novy zaznam, false -> poslu sa iba ID pre ten zaznam.
- Zvoli frekvenciu ako casto sa ma posielat a kolko maximalne zaznamov sa posle v kazdej davke danej kniznici/nastaveniu sa priradi konkretny FE zo zoznamu existujucich (tak aby sa kniznice rovnomerne rozlozili), na ktory sa budu zasielat zmeny a ten bude zodpovedny za vytvaranie synchronizacnych zaznamov.
- Udaje sa daju menit a synchronizuju sa s FE (opozdenie cca 1min)
- FE si po spusteni nacita nastavenia ulozene v DB a pokusi sa ziskat z BE pokial sa podari z BE tak premaze, tie ktore mal z FE.. (strati sa hodnota synced_last_time pretoze sa neeviduje na BE). Pri vypadku FE sa po restarte moze okamzite synchronizovat.
- Nastavenia sa ukladaju v kolekcii settings_push na FE.
- Pri zmene dat v datovej strukture OKCZ na BE sa na FE zasiela aktualna podoba metadatoveho kontajneru. V POST datach sa zasiela cely kontajner (ked nepride tak sa posielaju iba parametre aktualizovaneho dokumentu ako ISBN, EAN, NBN, OCLC aj tym co si ho vyziadali cely metadata kontajner).
- Prejdu sa vsetky kniznice nan zaregistrovane a podla toho ci je pozadovane preposlat cely kontajner sa vytvori synchronizacny zaznam v kolekcii okcz_push.
- Po spusteni skriptu sa postupne pre kazdu zaregistrovanu kniznicu z settings_push pokusi poslat nevybavene synchronizacne zaznamy. Proces bezi paralelne pre vsetky kniznice a nedochadza k blokovanie v pripade, ze by niektora z kniznic neodpovedala, alebo odpovedala prilis pomaly.
- Skontroluje si posledny cas synchronizacie a zisti ci uz moze znovu posielat (podla frekvencie zadanej kniznicou pri registracii), vytiahne nanajvys tolko zaznamov kolko si stanovili v davke. Dalsou podmienkou je max 15 pokusov pre dany synchronizacny zaznam - retry_date).
- V POST datach sa posiela iba jediny request pre vsetky zaznamy. Tj. ak si kniznica pozadovala posielat 1000 zaznamov, vsetky budu zaslane v jednom metadata kontajnery (poli objektov v JSON formate).
- Pokial dostane kladnu odpoved (STATUS 200=OK) tak berie synchronizaciu ako uspesnu a vymaze zaznamy z DB
- Pokial nedostal kladnu odpoved tak zaznamom navysi hodnotu retry_count o 1 a adekvatne poznaci dalsi retry_date
- Pokial bol presiahnuty limit pokusov pre synchronizaciu (15 pokusov) a kniznica mala zaregistrovanu emailovu adresu tak sa posle sprava o tom ze synchronizacia zlyhala.
Dobrý den. Pokus o zaslání synchronizačního požadavku (PUSH API obalkyknih.cz) na Váš systém selhal. Prosíme o kontrolu funkčnosti ve Vašem systému. URL pro zasílání požadavků pro knihovnu se siglou ABC001: Email Vám byl automaticky zaslán systémem obalkyknih.cz