Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] czy curl rozciaga czas działania skryptu?
Forum PHP.pl > Forum > Przedszkole
axxxon
Witam!
Otóż w swoim obecnym projekcie za pomocą set_time_limit ustawiłem maksymalny czas wykonania skryptu na minute, w skrypcie wykorzystuje tez jednorazowo curl'a. Niestety to co zauważyłem to budzi moje pewne obawy: otóż skrypt wykonuje się na zasadzie 60 sekund + czas wykonania curl'a i temu chciałbym zapobiec, ostatecznie czas wykonania curl'a bardzo się rożni z każdym wywołaniem skryptu dlatego ustawiłem
  1. curl_setopt($c,CURLOPT_TIMEOUT,3);

to jednak nie rozwiązuje problemu...

Czy da się to jakoś rozwiazać bez grzebania w ustawieniach z poziomu ini_set()?

----
Edit: dodam że bez curl'a czas działania skryptu jest normalny, więc stąd moje podejrzenie
matino
Może to Ci pomoże:
http://stackoverflow.com/questions/1418583...out-not-working
axxxon
właśnie nie bardzo rozwiążę... nawet po ustawieniu time-outu w milisekundach jak podałeś i tak czas wykonania skryptu jest większy niż moje ustawione 60 sekund...
czy curl może wstrzymywać jakoś skrypt? tzn. powoduje zatrzymanie działalności skryptu dopóki curl nie zostanie zatrzymany lub uruchamia się nowy watek dla curl'a z wstrzymaniem obecnego odpowiedzialnego za skrypt i stad pochodzi ta różnica?
matino
Cytat
właśnie nie bardzo rozwiążę... nawet po ustawieniu time-outu w milisekundach jak podałeś i tak czas wykonania skryptu jest większy niż moje ustawione 60 sekund...

Chodziło mi raczej o dodanie CURLOPT_CONNECTTIMEOUT i sprawdzenie czy to pomoże.
Cytat
czy curl może wstrzymywać jakoś skrypt?

Nie wydaje mnie się, ale może nie mam dostatecznej wiedzy.
thek
Czas zależy od systemu operacyjnego. Niektóre do czasu działania skryptu liczą jedynie okres w którym skrypt faktycznie działa, czyli czas choćby sleepa bądź innych działań, gdy skrypt "wisi i czeka" nie jest liczony do sumarycznego. Inne zaś licza go od momentu jego ruszenia. To sprawia, że w przypadku skryptów, gdzie operacje potrafią na jakiś czas skrypt do stanu idle sprowadzić i oczekiwania na dane choćby, mogą mieć inny moment przerwania, który wykroczy poza rzekomy limit, choć tak naprawdę przerwą dokladnie w nim, tyle że będzie to dla usera nielogiczne.
wNogachSpisz
We wszystkich konfiguracjach z którymi się spotykałem, czas wykonywania skryptu ograniczony przy pomocy ustawień PHP to limit czasu procesora.
W praktyce odnacza to, że okres czasu w którym działał sleep() lub gdy skrypt czeka na zwócenie danych przez fread() (np. w przypadku zastosowania blokady zasobu), to czas NIE doliczany do czasu wykonywania skryptu.
Niestety coraz więcej hostingów ma w zwyczaju ograniczać to innymi sposobami, np na poziomie serwera www czy jeszcze inaczej, rezultatem jest zegarowe ograniczenie czasu wykonywnia skryptu. Po jego przekroczeniu następuje error-500.

Próby sprawdzenia czasu wykonywnia skryptu z wewnątrz tego skryptu zdają się nie działać w wielu konfigruracjach. Znaczniki czasu zwracane przez cyklicznie wywoływane microtime() czy time() są dalekie od dokładności..
axxxon
Więc tu moje pytanie się nasuwa, czy curl lub zapytanie mysql, może przeciągnąć ten czas znacząco?
thek
Odpowiedź jest ukryta w tym co napisaliśmy - wszystko zależy od hostingu. cURL sam w sobie potrafi mocno czas zużyć, ale tylko tam, gdzie brane jest pod uwagę faktyczny czas działania skryptu, tam może dojść do przedłużenia. Sprawią to mało responsywne strony pobierane cURLem. Wtedy jak najbardziej może dojść do przedłużenia znacząco tego czasu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.