<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Ahoj,<div class=""><br class=""></div><div class="">to co hledas je Circuit Breaker (<a href="https://en.wikipedia.org/wiki/Circuit_breaker_design_pattern" class="">https://en.wikipedia.org/wiki/Circuit_breaker_design_pattern</a> nebo <a href="https://martinfowler.com/bliki/CircuitBreaker.html" class="">https://martinfowler.com/bliki/CircuitBreaker.html</a>)</div><div class=""><br class=""></div><div class="">V PHP uz si neco muzes vygooglit, neco sem nasel :-).</div><div class=""><br class=""></div><div class="">Dalsi reseni (ktere pouzivame bezne v produkci) je nasazeni MQ front, ktere je samo od sebe dostatecne robustni a vyresi ti spoustu problemu (ale o to slozitejsi je to dokodovat).</div><div class=""><br class=""></div><div class=""><div class="">
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">--------------</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Ivan Moucha [Minowara]</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline">
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">On 2 Jul 2018, at 16:14, Jan B. Kolář <<a href="mailto:janbivoj.kolar@zazen-nudu.cz" class="">janbivoj.kolar@zazen-nudu.cz</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">DĂky všem za jejich reakci a omlouvám se za moje ponÄ›kud delšà odezvy. SedĂm <br class="">zrovna za pultem a zatĂm co odpovĂdám, tak ještÄ› obsluhuji zákaznĂky :-D<br class=""><br class="">V podstatÄ› se mi zdá jako nejjednoduššà řešenĂ to, co mĂše Martin. MĹŻj problĂ©m <br class="">ale je, Ĺľe ĂşplnÄ› pĹ™esnÄ› nevĂm, jak bych to mÄ›l v PHP implementovat. Tedy <br class="">prvnĂ, co mÄ› napadlo je, Ĺľe bych pouĹľil dvÄ› databáze - vzdálenou pĹ™es SSH <br class="">tunel a lokálnĂ. StandardnÄ› bych pracoval se vzdálenou databázĂ a pokud by se <br class="">PHP nepodaĹ™ilo ke vzdálenĂ© databázi pĹ™ipojit, tak by zaÄŤalo pracovat s lokálnĂ <br class="">databázĂ a ukládalo si účtenky, kterĂ© vystavilo pro pozdÄ›jšà synchronizaci. <br class="">Jakmile by se spojenĂ obnovilo, tak by se appka pokusila všechno z lokálnĂ <br class="">databáze nahrát do vzdálenĂ© databáze na server.<br class=""><br class="">Hned prvnĂ, co mÄ› ale napadá je, jak appka pozná, Ĺľe je spojenĂ pĹ™erušeno/<br class="">navázáno? Tedy pokud budu pĹ™i kaĹľdĂ©m poĹľadavku ÄŤekat na timeout vzdálenĂ© <br class="">databáze, tak se ta aplikace asi brutálnÄ› zpomalĂ, ikdyĹľ tam dám tĹ™eba jen 1s <br class="">timeout.<br class=""><br class="">ÄŚĂm si však vĹŻbec nejsem jistĂ˝, jakĂ˝m zpĹŻsobem bych mÄ›l Ĺ™ešit tu cache <br class="">produktĹŻ? To mám tĹ™eba co hodinu stahovat celou produktovou tabulku ze <br class="">vzdálenĂ© databáze a ukládat ji lokálnÄ›? Jde sice jen o cca. 2 tisĂce produktĹŻ <br class="">a dvÄ› pokladny, ale pĹ™esto...<br class=""><br class="">NevidÄ›l jste nÄ›kdo nÄ›jakou implementaci takovĂ©ho problĂ©mu, Ĺľe bych se mohl <br class="">podĂvat na kĂłd? <br class=""><br class="">Dne pondÄ›lĂ 2. ÄŤervence 2018 13:18:36 CEST jste napsal(a):<br class=""><blockquote type="cite" class="">Dne 2.7.2018 v 11:26 Jan B. Kolář napsal(a):<br class=""><blockquote type="cite" class="">ZaÄŤal jsem si tedy pohrávat s myšlenkou, Ĺľe bych aplikaci pĹ™esunul na<br class="">kaĹľdou pokladnu zvlášť (tzn. na pokladnÄ› by běžel nginx, PHP a mysql) a<br class="">na server si dÄ›lal jen replikaci databázĂ, abych pak mohl dÄ›lat z<br class="">pokladen vĂ˝kazy, aniĹľ by byly v bÄ›hu.<br class=""></blockquote><br class="">Nebylo by jednoduššà pouĹľĂvat lokálnĂ databázi na pokladnách jen jako<br class="">cache produktĹŻ a buffer účtenek? Databáze na serveru bude hlavnĂ.<br class="">Pokladny si z nĂ v definovanĂ˝ch intervalech budou aktualizovat cache<br class="">produktĹŻ a prĹŻběžnÄ› do nĂ budou zapisovat novĂ© účtenky, kterĂ© se<br class="">serverem Ministerstva vyĹ™ĂdĂ samy. KdyĹľ ale selĹľe spojenĂ s hlavnĂ<br class="">databázĂ, účtenka se zapĂše do bufferu a na server se uložà aĹľ<br class="">dodateÄŤnÄ›, aĹľ se spojenĂ zase obnovĂ.<br class=""><br class="">S pozdravem,<br class="">Maritn Doucha<br class=""></blockquote><br class="">-- <br class="">Jan B. Kolář<br class=""><br class="">ZaĹľeĹ nudu<br class="">Hodolanská 17, 779 00 Olomouc<br class="">tel: +420 605 800 859<br class=""><a href="mailto:janbivoj.kolar@zazen-nudu.cz" class="">e-mail: janbivoj.kolar@zazen-nudu.cz</a><br class="">www.zazen-nudu.cz<br class="">_______________________________________________<br class="">Community-list mailing list<br class="">Community-list@lists.vpsfree.cz<br class="">http://lists.vpsfree.cz/listinfo/community-list<br class=""></div></div></blockquote></div><br class=""></div></body></html>