<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Ahoj,</p>
<p>co člověk, to názor, tak můj je zde :)</p>
<p>Držel bych se KISS principu. Ideálně měnit stávájící aplikaci co
nejméně. Říkal jsi, že si voláš eet kód přes ssh tunel, co si
lokálně přidat sqlite frontu, do které budeš přidávat nové EET k
vystavení a mazat je až po úspěšném potvrzení (GET z PHP serveru
nebo z MF)?</p>
<p>Přijde mi nešťastné mít mysql replikovanou od uživatelských
stanic na server, a díky neznámé latenci by to mohlo vést ke
zvláštním problémům. To co řešíš je čistě aplikační problém, a měl
bys k němu tak přistupovat.</p>
<p>Hezčí řešení by bylo mít EET kód dostupný jako API, které voláš z
klientů. Pak je na straně klientského kódu, aby si ohlídal, že se
záznam úspěšně zapsal a případně to zkoušel dokud se nepodaří a
měl ho uložený v nějakém persistentním storage.</p>
<p>Lukáš<br>
</p>
<br>
<div class="moz-cite-prefix">On 2.7.2018 11:48, Jaroslav Týc wrote:<br>
</div>
<blockquote type="cite"
cite="mid:92ef78e0-91c9-6199-615d-ee0c9456ca3a@atlas.cz">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<p>Chápu, že umíš PHP a MySQL, takže učit se něco nového je zátěž
navíc, ale jak jsem dočetl popis tvého problému, tak mi
naskočila <a moz-do-not-send="true"
href="http://couchdb.apache.org/">CouchDB</a>, kterou
používají třeba pro apku <a moz-do-not-send="true"
href="https://play.google.com/store/apps/details?id=com.droid4you.application.wallet">Wallet</a>.</p>
<p> CouchDB má mu vlastnost, že si synchronizaci dat řeší sama,
včetně toho který záznam je poslední, co s konflikty (ne, není
to tak magické jak to zní) a nějaké výpadky spojení ji moc
netrápí.</p>
<p>Co si pamatuju z přednášky vývojáře Wallet, tak si data
posbírají přes CouchDB a pak to z ní vycucnou a hodí do SQL
databáze, se kterou pak pracují jak jsou zvyklí.</p>
<p>Pokud by mě osobně tlačil čas, tak bych šel cestou nejmenšího
odporu a z centrálního serveru bych kontroloval změny každých
pět minut (třeba). Nedržel bych se replikace, protože udržovat <b>všude</b>
stejnou databázi je zbytečná datová zátěž a kdyby mi někde
vznikl konflikt (byt jenom se stejným ID u autoincrementu), tak
bych si toho asi hodil mašli.</p>
<p>Jarda<br>
</p>
<br>
<div class="moz-cite-prefix">On 07/02/2018 11:26 AM, Jan B. Kolář
wrote:<br>
</div>
<blockquote type="cite" cite="mid:1664639.76Gbd4SjGZ@omen">
<pre wrap="">Ahoj,
chtěl jsem Vás poprosit o radu s jedním problémem, který teď řeším.
Když byl loni blázinec kolem EET, rozhodl jsem se jít vlastní cestou a pro
svoje prodejny nasadil pokladní software v PHP (v PHP umím programovat, takže
jsem si byl schopen do programu udělat implementaci EET). Celá věc mi běží na
serveru a pokladny se tam připojují pomocí SSH tunelu.
Co mi však začalo dělat starosti jsou výpadky připojení. Za celý rok jich
bylo jen pár, přesto bych však nechtěl dostat pokutu za to, že v době výpadku
nedávám lístky.
Začal jsem si tedy pohrávat s myšlenkou, že bych aplikaci přesunul na každou
pokladnu zvlášť (tzn. na pokladně by běžel nginx, PHP a mysql) a na server si
dělal jen replikaci databází, abych pak mohl dělat z pokladen výkazy, aniž by
byly v běhu.
Až po sem myšlenka dobrá, jenže dnes mi došlo, že budu potřebovat některá data
sdílet mezi pokladnami - například seznam produktů. Ten potřebuji mít
přístupný lokálně, aby šlo produkty účtovat v případě výpadku, ale zároveň ho
také potřebuji synchronizovat, aby se produkt do seznamu nemusel přidávat na
každé pokladně zvlášť. No a tady nevím, jak k tomu mám přistoupit :-(
Neřešil jste někdo podobný problém? Napadlo mě, zda nemít pro sdílená data
druhou databázi, která by byla na serveru a replikovala se na pokladny.
Přiznám se ale, že nevím, jak bych v tomto případě řešil zápisy do master
databáze na serveru a čtení z lokální slave databáze na pokladně.
Ocením jakoukoliv radu nebo odkaz.
Všechny zdraví
Honza
</pre>
</blockquote>
<br>
<!--'"--><br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Community-list mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Community-list@lists.vpsfree.cz">Community-list@lists.vpsfree.cz</a>
<a class="moz-txt-link-freetext" href="http://lists.vpsfree.cz/listinfo/community-list">http://lists.vpsfree.cz/listinfo/community-list</a>
</pre>
</blockquote>
<br>
</body>
</html>