Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] czy curl rozciaga czas działania skryptu?, skrypt sie nie konczy gdy zostaje uruchomiony curl
axxxon
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 28.10.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował axxxon 22.04.2011, 12:49:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
matino
post
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

Ostrzeżenie: (0%)
-----


Może to Ci pomoże:
http://stackoverflow.com/questions/1418583...out-not-working
Go to the top of the page
+Quote Post
axxxon
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 28.10.2010

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
matino
post
Post #4





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


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..
Go to the top of the page
+Quote Post
axxxon
post
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 28.10.2010

Ostrzeżenie: (0%)
-----


Więc tu moje pytanie się nasuwa, czy curl lub zapytanie mysql, może przeciągnąć ten czas znacząco?
Go to the top of the page
+Quote Post
thek
post
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:40