Diskuze: neustále běžící script na serveru
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Jestli si myslíš, že přičítání surovin se děje tak, že script nepřetržitě připočítává surovinu po surovině, tak si to myslíš špatně. Vždy se to vypočítává na základě události. Tedy když se přihlásíš jednou denně, tak se ti vypočítá počet surovin, od posledního odhlášení po aktuální přihlášení krát hodinová produkce. Z toho se odečte spotřeba, nebo loupeže a td. Tedy vždy se to vypočítává na základě nějaké události...
No ale pokud by bylo potreba nejake aktualni udaje neprihlaseneho hrace pro jineho, tak by bylo potreba mit uz udaje vypocitany.
Podival bych se po nejakem hostingu s planovacem (cron - namatkou pres stejdu googla mi vyskocila endora) a poustel bych pravidelne ulohou skript, kde se periodicky vypocita vse potrebne
riesenie tohoto problemu neustale beziacim skryptom je nevhodne a navyse
zbytocne zatazuje server....
treba to riesit pomocou udalosti a prepocitavanim, v tomto pripade dany script
nezatazuje server a popravde sa script spusta tolkokrat, kolkokrat si ho
uzivatelia vyziadaju (cize pokial su 10-ti uzivatelia a ma sa spustit iba raz,
tak sa spusti 10x, pre kazdeho zvlast), s tym treba taktiez pocitat
Děkuji za odpovědi, trochu jsem to promyslel a teoreticky by se dalo všechno vypočítat zpětně až když to bude potřeba. Akorát bude trochu problém pokud se suroviny nebudou vyrábět celou dobu stejně (např. se dostaví upgrade budovy, takže produkce suroviny vzroste o 10%).
Můžeš udělat to, že si stav surovin uložíš vždy při převzetí nového stavu (úrovně) budovy (nebo jiné detekce změny produkce) napevno do databáze. S počtem surovin si budeš muset uložit i datum poslední aktualizace, aby bylo možné to dopočítávat.
To znamená, že nebude problém s úrovněmi budov, aktuální stav si vždy spočítáš bez problémů.
// Takhle jednoduše dopočteš suroviny, když budeš potřebovat aktuální stav
naposled uložené + (počet hodin od poslední aktualizace * počet surovin za hodinu)
Naskýtá se problém jak aktualizovat stav surovin zrovna ve chvíli kdy se dostaví budova, pokud hráč zrovna nebude online. Napadá mě akorát nastavit nějaký "budík" který by ve stanovený čas spustil script, ale jak, to netuším.
Opět to přepočítáš, až to bude požadováno. Zatočím-li právě teď na tvou vesnici a ty jsi den nebyl přihlášen, tak se prostě načtou patřičné údaje z databáze společně s tím, kdy se mají dostavět budovy, a nějaký chytrý algoritmus to dopočítá. Tedy nejprve do události, kdy se dostaví upgrade, pak od upgradu do současnosti. Přepočítané hodnoty se uloží zpět do databáze a vrátí se jiné části programu, aby se mohl provést útok.
Vlastně to bude takový blackbox. Vytvoříš si třídu (nebo několik tříd), která jako jediná bude číst a měnit suroviny ve tvé vesnici. Vždy, když budeš chtít číst, načte data z databáze, přičte suroviny na základě času. Pokud se během té doby něco mimořádného stalo, tak to také započítá a výsledek uloží do databáze a taktéž ho vrátí.
Smysl je tedy takový, že nebudeš muset nikdy používat CRONa ani jiné skripty, které by musely běžet neustále. Možnou nevýhodou je to, že pokud je ve vesnici hodně událostí, mohl by přepočet chvíli trvat. Také by mohlo docházet ke konfliktům, kdy by se spustily dva dotazy na danou vesnici a tedy dva různá vlákna by začala počítat, jak to s tím stavem surovin vlastně je. To by ale vadit moc nemělo si myslím, žádné chyby by se vyskytovat neměly, jen se může stát, že se sem tam něco bude počítat dvakrát.
Zobrazeno 8 zpráv z 8.