Portál AbcLinuxu, 24. dubna 2024 11:16


Dotaz: Server nevrátil žádná data

8.12.2011 08:11 xfun
Server nevrátil žádná data
Přečteno: 267×
Odpovědět | Admin
Ahoj,

mám takový problém. Mám skript, který prochází obsah externího webu a zpracovává jeho data, která ukládám do pole. Výsledné pole chci nechat zobrazit přes print_r(), ale po několika minutách zpracování se skript jakoby přeruší a nic nevrací.

Ve Firefoxu to hodí prázdnou stránku, u Chrome to napíše:
Údržba webu:

Informace o nedostupnosti webu Vazeny navstevniku, pozadovana stranka je docasne nedostupna.

Mozne duvody: Udrzba webu Nadmerna zatez serveru Opakujte, prosim, pozadavek za nekolik minut.
Zkontroloval jsem logy, ale žádný vážný problém tam není. Pak jsem si nechal ukládat do souboru zpracovávané řádky a ty nebyly dokončeny (resp. bylo jich zpracováno několik, ale ne všechny).

Nevíte co s tím?

Bohužel tu zdroják dát nemůžu. K procházení webu používám curl funkce. Načtu vždy jednu stranu, ze které vyparsuji její odkazy, které hned přitom zase načítám přes curl a jejich zpracovaný výsledek ukládám do pole. Když nechám zpracovat jen několik stránek, tak mi to nehlásí žádnou chybu a vrátí mi to validní výsledek, ale když to nechám zpracovat celé (což je záměr), pak to přestane reagovat.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.12.2011 08:43 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Server nevrátil žádná data
Odpovědět | | Sbalit | Link | Blokovat | Admin
PHP, že? :-)
To vypadá na max_execution_time, případně memory_limit.
V případě prohlížeče je výstup pravděpodobně bufferován, a script skončí dříve než dojde k odeslání výstupu a prohlížeč prostě dostane velké NIC.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
8.12.2011 20:56 xfun
Rozbalit Rozbalit vše Re: Server nevrátil žádná data
jj.. PHP :) Je to častý problém? =)
9.12.2011 16:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Server nevrátil žádná data
Na to nelze odpovědět. :-)
Pokud jste na hostingu a nemáte možnost to změnit (ani použít set_time_limit), tak ano můžeme tmu říkat problém, - jste limitován více než jste zvyklý při používání PC bude to znamenat více práce.
Pokud máte server (nebo konkrétní nastavení) pod kontrolou, tak je to většinou jen neznalost a ta bude asi častá :-).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 14.12.2011 23:11 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Server nevrátil žádná data
Jak se to veme. Pokud takový běžný script tenhle limit vyčerpá, je s ním něco špatně a stejnak si nic lepšího nezaslouží.

Pokud však opravdu dělá něco časově náročného, tak buď se spustí script na pozadí (mimo web server) a nechá se běžet asynchronně, přičemž průběch se sleduje v samostatných HTTP dotazech, takže s limitem není problém. Nebo se úloha rozdělí na menší části a provede se na více HTTP dotazů. Script si zjistí, jaký má limit, pak před jeho vyčerpáním si uloží svůj stav a přesměruje klienta na pokračování. Klient při tom může ukazovat pěkný progressbar.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.