Autor Zpráva
simi66
Profil
Zdravim potřeboval bych udělat přepočet u jednotlivých lidí zvlášť, např. člověk jedna má nastavenej přepočet na 1 hodinu, tak aby mu v 1 např. přibyly suroviny. V db mám uloženej samozřejmě v kolik má přepočet proběhnout a taky kdy se naposledy přihlásil. Díky
Budulinek
Profil
Jo, to je super začít uprostřed problému, neumět to srozumitelně podat a nakonec ani nepoložit otázku :D

Pokud jsem správně pochopil, asi hledáš CRON...
vynalezce
Profil
ja bych to resil tak, ze kdyz uzivatel provede nakou akci tak bych overil jestli ten cas prepoctu uz byl pokud ano vykonal bych ho
Shulík
Profil
Cron, pokud je k dispozici je IMHO o dost výhodnější:

* Nezpomaluješ tím načítání stránek, na kterých by za jiných okolností probíhalo mimo jiné i ověřování přičtení surovin.
* Zachováváš tím přehlednost kódu (script by IMHO správně měl obsahovat jen kód, který vykoná věc, kvůli které byl script spuštěn. Něco jako u OOP není správné přidat metodu umocni třídě Hruška.).
* Nemusíš ověření přepočtu surovin dávat do strašně velké spousty různých scriptů (přihlášení, zobrazení náhledu jakékoli budovy, výpočet výsledku útoku na hráče.. - použil jsem příklady z budovatelských online her, když jsi s tím začal :))
tiso
Profil
Shulík: ???
Shulík
Profil
[#5] tiso: Promiň, nemluvím řečí vašeho kmene. Co jsi mi chtěl sdělit?
tiso
Profil
Shulík: že nerozumiem tvojim argumentom pre výhodnosť CRON-u.
Shulík
Profil
<no-offense>Když neřekneš, čemu přesně nerozumíš, těžko to můžu nějak vysvětlit, obhájit. Rád se něco nového přiučím, zjistím, že jsem si myslel blbost a budu člověku, který mě na to upozornil neskonale vděčný. Ale když se nedozvím, co konkrétně je blbost a nějaké další protiargumenty, těžko to mohu nějak obhájit/uznat, že říkám blbost. Nebo jsem to napsal nesrozumitelně a Ty tomu nerozumíš?</no-offense>

Napíšu to teda ještě jednou:

* Pokud musí stránka zjistit, jestli se nemají připočíst suroviny + xyz dalších věcí, musí vykonat nějaké příkazy. Pravděpodobně minimálně jednou vykoná dotaz nad databází, data možná nějak porovná a tak dále. To všechno stojí čas a zatěžuje to server.
* Bez použití CRONu musíš do všech scriptů, kterých se počet surovin týká, vložit kód (odkaz na kód), který suroviny přepočítá. Což snižuje přehlednost kódu. Je rozdíl, jestli přijdeš ke kódu kde máš něco typu '$u=new attack(0,0,1000,0,10);$u.send();', z čehož význam pochopíš a kódu, který obsahuje '$u=new attack(0,0,1000,0,10);$u.send();include "suroviny.php"; Suroviny::prepocitej();'.
* Nemusíš mít 'include "suroviny.php"; Suroviny::prepocitej();' v každém scriptu, který musí pracovat s počtem surovin, což a) zvyšuje celkovou velikost scriptu (uznávám, ne o moc) a b) zhoršuje možnost jak později změnit způsob přepočítávání surovin.

Uznávám, má to i své nevýhody:

* Suroviny se přepočítávají pouze tehdy, když CRON spustí požadovaný script a tudíž může docházet k nepřesnostem.
tiso
Profil
Shulík: srandista...
[#4]
1. Čo zaťažuje server viac? Spúšťanie cronu a zbytočné výpočty pre neprihlásených ľudí (počet spracovaných záznamov radšej nespomínam), alebo väčšinou prázdny selekt na databázu + príslušná PHP bižutéria?
2. čo vykonáva skript nie je dôležité, to pravidlo platí pre funkcie a metódy - tie majú robiť jednu vec.
3. každý skript musí tak či tak vkladať nejaké jadro, tak sa to vloží s ním
[#8]
1. viď 1. vyššie
2. viď 3. vyššie
3. a) somarina, b) tiež, mať Suroviny::prepocitej(); vo viacerých skriptoch je blbosť, keď, tak by to malo byť v konštruktore. Okrem toho jediná zmena by bola pri zmene názvu alebo pri pridávaní parametrov.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: