Autor Zpráva
Trsak
Profil
Zdravím,
narazil jsem na problém. Z jedné stránky beru určitá data. Tyto data se mění. Kdybych bral tyto data pouze pro jednoho uživatele, tak by nebyl problém. Bohužel však beru tyto data pro všechny uživatele - načítání trvá tak opravdu velice dlouho.
Jediné řešení, které mě napadlo, je vytvořit script, který by data nahrál do databáze a pomocí Cronu pak každou hodinu tento script spustit. Problém je, že webhosting mi nabízí Cron jen každou hodinu - proto hledám jiné řešení, kdy budu moct data aktualizovat častěji.
Nějaké nápady?
juriad
Profil
Trsak:
A co to stahovat po menších částech? Za předpokladu, že je to něco jako statistika hráčů, ve které jsou jednotlivé údaje na sobě nezávislé a mírná zastaralost nevadí.

Když uživatel přijde na stránku, skript zkontroluje, zda existuje nějaká část dat, která je přilíš stará (napřiklad více než 3 minuty). V takovém případě skript stáhne přislušná data, uloží si je a následně vygeneruje stránku.

Tím, že stahování rozložíš na několik částí, bude zpoždění malé.
Sem tam to některému uživateli bude trvat déle, ale v průměru bude stránka rychlá.
Nejhorší to bude pro uživatele, který přišel jako první po zastarání všech částí dat.
To by šlo řešit soft (3 minuty) a hard (10 minut) limitem. Skript stáhne všechny části, které jsou starší než hard limit a pokud žádné nejsou (nebo jich je opravdu málo), stáhne i některé ze soft limitu.
Chro
Profil
Trsak:
Tak Cronem můžeš každou hodinu spustit skript, ve kterém tu operaci stahování dat provedeš třeba 3x po 15 minutách, tzn. že mezi operacemi dáš pauzu pomocí funkce sleep (skript uspíš). Uspání se na nezapočítává do max execution time.
juriad
Profil
Trsak:
Nebo se poptej provozovatele toho druhého webu, zda by nenabídl pohodlnější export dat, třeba jen obyčejné XML, které je datově menší než celá stránka a očekávám, že bude i rychlejší ho vytvořit.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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