Skip to content

ObalkyKnih realizace PUSH API

cosmo-cz edited this page Dec 16, 2016 · 1 revision

Registracia: BE -> FE

  • 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.

Zmena udajov

  • 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.

Synchronizacia

  • 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
a v nastaveniach pre kniznicu poznaci aktualny cas ako cas poslednej synchronizacie.
  • 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
Clone this wiki locally