Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] sleep() - proste pytanie
qtchb
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 24.08.2004
Skąd: Poznań

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


Witam!

Obczytałem forum, googla i większość kursów, ale nigdzie nie znalazłem odpowiedzi wprost na jedno ważne dla mnie pytanie:

czy stosowanie funkcji sleep() pozwala na ograniczenie obciążenia serwera?
albo inaczej:
czy kiedy parser natrafi w kodzie skryptu na funkcję sleep() to obciążenie serwera jest w czasie sleepu mniejsze?

Pytam bo admin mojego serwera jest starą marudą i jak uruchomię skrypt, ktory wlaśnie pisze, to zaraz będzie płakał.

Prawdopodobnie najlepszym sposobem byłoby uruchamianie skryptu w przeglądarce i używanie refresh w meta tagach, ale to odpada - muszę wykorzystać crona.

Może wyjaśnię jeszcze, że mój skrytp wykonuje zapytania i operacje na bazie danych, a poza tym przenosi dane via xml-rpc na inny serwer.

Z góry dziękuję za odpowiedź (w zasadzie wystarczy mi odpowiedź tak lub nie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Nie wiem na pewno, ale chyba nie. Ta funkcja opóźnia jedynie wykonanie skryptu. Wydaje mi się, że interpreter odnajdując wywołanie tej funkcji po prostu odczekuje sobie ileś tam sekund i dopiero zaczyna działać. Nie wiem, czy na pewno, ale tak wynika z manuala :/
Go to the top of the page
+Quote Post
bim2
post
Post #3





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Mi jakoś ta funkcja nie działała. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Może w php5 działą? Nie wiem nie używam jej, ale w php4 nie działała (mi) Moim zdaniem poprostu zatrzymuje parser na ilesc sec i po iles secundach leci dalej.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Jest raczej tylko w php5 (ale dawno nie widziałem changeloga do php4)
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




niepotrzebny changelog, wystarczy manual:
http://pl.php.net/manual/pl/function.sleep.php
i juz widac ze juz w php3 byla (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

ps: i dziala
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




O.o
Pół życia z błędną wizją sleep() aaaa!!!
No ale teraz sobie chociaż poczytam tamtejsze posty. qtchb na php.net sa ciekwe idee uzycia funkcji sleep.
Dzieki nospor (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dadexix
post
Post #7





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


pozwole sobie rozkopać temat bo po co pisać nowy;)

pytanie mam jedno... czy gdy parser "spi"(używam fukcji sleep) to czas wykonywania skryptu też się zatrzymuje czy nie?

chodzi mi o to by nie przerwało skryptu z powodu limitu czasu... np. skrypt wykonuje się 0.5 sec, w środku skryptu dam sleep(5) (lub usleep(5000000) ) to czas wkonywania będzie 5.5 czy 0.5? jeśli miał bym max_execution_time = np. 3 to czy mi przerwie czy podczas "snu" czas wykonywania też się zatrzymie?(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
isso
post
Post #8





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


Wykonywanie skryptu powinno zostać przerwane ponieważ funkcja sleep działa tak jakbyś utworzył własną funkcję, która będzie liczyła bardzo dziwne rzeczy, a jej wykonanie będzie trwało X sekund... po czym przejdzie do następnych instrukcji...

Funkcja jest opisana jako opóźnienie wykonania, ale nie ma tam mowy o wstrzymaniu maksymalnego czasu wykonywania... wiec powinieneś otrzymać wynik wykonywania równy 5.5 sek przy tych danych, które podałeś.
Go to the top of the page
+Quote Post
dadexix
post
Post #9





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


no tak ale patrząc z innej strony jest to nie logiczne bo max_execution_time jest po to by server nie był obciążony przez jeden skrypt za długo a gdy parser "spi" to nie ma obciążenia;)... hmmm sprawdzę to:)
  1. <?
  2. echo "próba jeden\n";
  3. echo ini_get('max_execution_time')." = max_execution_time - sprawdzamy czy nie ma zablokowanych set_time_limit itd.\n";
  4. sleep(3);
  5. echo "próba dwa";
  6. ?>


daje
Kod
próba jeden
2 = max_execution_time - sprawdzamy czy nie ma zablokowanych set_time_limit itd.
próba dwa


Ten post edytował dadexix 6.04.2008, 08:51:00
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 16:08