![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Ostatnio napisałem skrypt, który dodaje newsy co 3 dni o 12.00
Oczywiście musiałem dodać to do crona. Jednak nie działa to tak jak chce. Zauważyłem, że w PHP jest ciekawa funkcja SLEEP. Chciałbym dowiedzieć się jakie ona ma wady. Jeśli dałbym taką pętlę
Czy działało by to podobnie do crona? (zakładając, że uruchomiłbym skrypt o 12.00) Jeśli $wartość jest pobierana z pliku to czy gdy w czasie pracy skryptu podmienię plik i zmienię treść zmiennej wartość to czy PHP będzie wrzucać do mysql wartość która jest podana w czasie uruchomienia skryptu czy tą nową? Ten post edytował xamrex 18.08.2010, 14:40:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Owszem... Można ustawiać czas wykonania na 0, ale tylko gdy możesz go modyfikować poprzez dyrektywy lub funkcje php. A przecież nie wszystkie hostingi na to pozwalają tak jak nie na wszystkich jest dostępny cron, albo ma on limity w stylu raz na ileś minut.
To co wspomniał zegarek jest prawdą, ale tylko w przypadku windowsa i znów manual tutaj wyjaśnia to. Jedynie windows tak reaguje, że nie liczy czasu w uśpieniu do całkowitego czasu wykonywania. Najbezpieczniejszy wariant to użycie crona, a jeśli działania mają być częstsze niż minuta, to wspomniane uruchamianie skryptu i jego kontrola poprzez cron. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
To co wspomniał zegarek jest prawdą, ale tylko w przypadku windowsa i znów manual tutaj wyjaśnia to. Jedynie windows tak reaguje, że nie liczy czasu w uśpieniu do całkowitego czasu wykonywania... sprostowanie: pisałem ale inaczej - właśnie to w Windowsie czas uśpienia jest wliczany do całkowitego czasu wykonywania, na innych systemach nie...przykład: na linux'ie maksymalny czas wykonywania skryptu wynosi 30s i nie mamy możliwości zmieniania tej wartości, skrypt wykonałby się w ułamku sekundy ale potrzebujemy, by pewną operację wykonał w dokładnie odliczonym czasie [zastosowanie - np. boty do jakiejś gry np. www], z obliczeń wynika, iż dana akcja ma być dopiero za 2min i 10s [czas ten obliczyliśmy na początku]... przekazujemy funkcji sleep coby reszta skryptu wykonała się po obliczonym czasie [ja preferuję tutaj oderwanie procesu od reszty i inny skrypt mógłby czuwać nad całością]... i reszta operacji jest wykonywana po tym czasie - za błąd było podawane, że skrypt wykonywał się 2min 10sekund i troszkę faktycznego czasu wykonywania skryptu przed i po sleep - podczas gdy w manualu jest wyjaśnione, że czas sleep nie jest błędem a błędem jest to, że windows przerwie taką operację wliczając do czasu wykonywania skryptu... // EDIT choć raz na pewnym hostingu dokładnie nie było wyjaśnione jak jest liczone obciążenie procesora [w kontekście sleep i manuala], niby przez czas wykonywania skryptu ale jak to tam liczyli nie było napisane - dla pewności zapodałem tam kilka skryptów i zadałem pytania - szczerze sama obsługa była zdziwiona, że skrypt został naliczony na ułamek sekundy podczas gdy wynik na ekranie widzieli co 10s [mimo iż wcześniej wszystko dokładnie tłumaczyłem] - oczywiście wynik był dla mnie satysfakcjonujący i jeszcze raz objaśniałem im, iż to nie jest błąd i podawałem różne linki także do manuala i do bugów [gdzie napisane jest, że to nie jest bug - bugiem jest to jak na windows proces jest przerywany] Ten post edytował zegarek84 19.08.2010, 10:11:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 07:59 |