Portál AbcLinuxu, 25. dubna 2024 11:05


Dotaz: php fopen niekedy neprebehne

22.1.2013 02:36 adrinko | skóre: 22
php fopen niekedy neprebehne
Přečteno: 225×
Odpovědět | Admin
Ahojte, pouzivam fopen na precitanie obsahu cez www adresu. Niekedy sa vsak stane, ze sa po ceste niekde strati spojenie sp vzdialenym serverom. Je to nahodny jav, ale stava sa to. Skusal som to osetrit tak, ze som dal za seba dva rovnake fopen. Nezda sa to byt dobre riesenie, nakolko obidva prebehnu extremne rychlo a moze sa aj tak stat, ze zrovna za tych par milisekund vzdialeny server neodpovie a tym padom nemam data. Je mozne toto nejako osetrit?

Je mozne v php paralelne spustit niekolko fopenov? Mam totiz vela fopenov na vzdialene servre a ak by som daval pred kazdy spomalenie napr 1 sekundu, tak by to bezalo velmi dlho.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.1.2013 14:06 DarkKnightCZ | skóre: 12
Rozbalit Rozbalit vše Re: php fopen niekedy neprebehne
Odpovědět | | Sbalit | Link | Blokovat | Admin
nejjednodussi zpusob? vytvor si v c++ modul, nebo volej externi script, ktery to bude zpracovavat, pripadne by slo dosahnout podobneho efektu pres curl
22.1.2013 15:59 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: php fopen niekedy neprebehne
bezi mi to na hostingu, takze vlastne c++ nie su moc realne (a popravde s c++ ani neviem robit). curl ma zaujal, lebo ho vie aj php - ako ste to mysleli cez curl? Ide mi o to, ze aby sa to nezosypalo, ak funguje spojenie, no zaroven by tam mala byt moznost dat tomu timeout, keby spojenie trvalo brutal dlho.

Tiez ale neviem, ci curl v php dokaze spracovavat paralelne viacero poziadaviek, mate skusenost?
22.1.2013 21:15 DarkKnightCZ | skóre: 12
Rozbalit Rozbalit vše Re: php fopen niekedy neprebehne
zkuste tohle http://www.paul-norman.co.uk/2009/06/asynchronous-curl-requests/
24.1.2013 13:49 mike
Rozbalit Rozbalit vše Re: php fopen niekedy neprebehne
Odpovědět | | Sbalit | Link | Blokovat | Admin
toto je deklarace fopen v php:
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
to co te zajma je $context a option timeout. Tak si projdi dokumentaci k streamum
24.1.2013 15:40 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: php fopen niekedy neprebehne
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi bych raději použil curl a přes curl_setopt bych nastavil limity na čas a na rychlost. Co dělat v případě nedostupnosti, je věc aplikace, můžete počkat 0.2 sec nebo 2 sec a zkusit to znovu třeba 3× a pak vyhodit chybu.
Ke každému fopen() patří fclose() (a při zápisu, až fclose() nevrátí chybu je opravdu zapsáno), ale nějak si nejsem jist, co znamená dva stejné za sebe…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

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.