![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 25.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Wiem, że ogólnie kod PHP interpretowany jest po stronie serwera a wynik wysyłany do klienta. Jednak potrzebuje jakiegoś wyzwalacza typu "wczytanie strony poprzez kliknięcie w link". Powiedźcie jednak czy istnieje jakakolwiek szansa by PHP ustawić prosty timer po stronie serwera, który cyklicznie będzie wykonywał jakąś akcję? Mówię tutaj także o sytuacjach kiedy przeglądarka jest np. zamknięta. Wiem, że jest to raczej nierealne ale wole się upewnić poprzez kontakt z bardziej "zaawansowanymi" osobami w PHP. Pozdro |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Nie chcę zakładać nowego wątku a moje kolejne pytanie w pewien sposób dotyczy też tego tematu. Proszę powiedźcie mi czy istnieje szansa ustawienia jakiegoś licznika ograniczającego czas wykonywania pętli? I nie chodzi mi tutaj o set_time_limit który zabije mi całą sesję. W pętli fgetem czytam dane z serwera ssh. Zdarza się jednak jednak, że serwer nie odpowiada (zła komenda albo brak znaku nowej linii itd) i pętla stoi na tym poleceniu. Czy można przerwać samą pętlę po określonym czasie? Pozdro. Jedyna rzecz, która nachodzi mi na myśl to puszcze nie tego w oddzielnym wątku i pilnowanie ile trwa. Ewentualnie można zaimplementować samemu ssh'a na socketach i pilnować timeout, ale to krecia robota. Zaraz sprawdzę bo nie pamiętam dokładnie, ale tam chyba były jakieś różnice między cli/mod_php/cgi. //edited: Taki mały przykładzik:
Rodzic czeka 10 sekund na wykonanie się dziecka, jeżeli ten się nie zmieści w czasie to go ubija bezczelnie. Można to tez zrobić ciutkę inaczej z wykorzystaniem pcntl_alarm(); Ten post edytował masiakla 5.09.2010, 18:21:43 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
fajny przykładzik niestety działa tylko na unixach (IMG:style_emoticons/default/winksmiley.jpg) - jakoś wolę inne rozwiązanie na oderwanie procesu... które tutaj nie potrzebne... choć w sumie nawet ze względu na samo sleep na unixach jesli się pisze jakiegoś bocika ma przewagę - jeśli do nich się ograniczymy to PCNTL jak najbardziej by był wskazany...
Nie chcę zakładać nowego wątku a moje kolejne pytanie w pewien sposób dotyczy też tego tematu. Proszę powiedźcie mi czy istnieje szansa ustawienia jakiegoś licznika ograniczającego czas wykonywania pętli? I nie chodzi mi tutaj o set_time_limit który zabije mi całą sesję. W pętli fgetem czytam dane z serwera ssh. Zdarza się jednak jednak, że serwer nie odpowiada (zła komenda albo brak znaku nowej linii itd) i pętla stoi na tym poleceniu. Czy można przerwać samą pętlę po określonym czasie? Pozdro. ...Ewentualnie można zaimplementować samemu ssh'a na socketach i pilnować timeout, ale to krecia robota.... dlaczego skoro wszystko jest w manualu??http://pl2.php.net/manual/pl/function.fsockopen.php fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) Cytat timeout The connection timeout, in seconds. Informacja: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to fsockopen() only applies while connecting the socket. jeden z komentarzy dla rozjaśnienia sprawy - a jest tam wiele ciekawych komentarzy (IMG:style_emoticons/default/winksmiley.jpg) - wystarczy dostosować do swoich rozwiązań (IMG:style_emoticons/default/winksmiley.jpg) Here's a quick function to establish a connection to a web server that will time out if the connection is lost after a user definable amount of time or if the server can't be reached |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 18:08 |