patryczakowy
9.10.2009, 20:49:03
Mam zainstalowanego WebServ pod Windows xp mam odpalone skrypty które wykonują się po około 30 minut
czasami mniej czasami więcej więc regularne odpalanie np co 45 minut odpada raz może za dużo czasu czekać raz może być za szybko,
co można zrobić żeby skrypt odpalał się ponownie po 3 minutach jak zakończy wykonywanie?
Dodam że skrypty są w php i co jakiś czas wysyłają informacje na ekran
Z góry dzięki za rady.
erix
10.10.2009, 12:35:35
Zacznijmy od tego, co te skrypty robią. Jeśli chodzi o działanie skryptów, najpierw spróbuj przejść na IIS (Apache pod Windows często się sypie), dopiero potem spróbuj coś kombinować.
patryczakowy
10.10.2009, 14:26:43
A napisałem robota mi webServ chodzi już jakieś 48 godzin bez przerwy jak na razie żadnych oznak sypania robocik łazi po internecie i pobiera ale chce by po wykonaniu zadania przysiadł sobie i od nowa czas wykonania zadania zawsze jest różny trudny do przewidzenia.
na ekran wysyła jakieś przypadkowe dane żebym wiedział że żyje a nie się np zapętlił. korzystałem z rad kolegów z innego tematu z opcji w oprze "odświeżaj co.." ale nie zdała egzaminu bo potrafiła odświeżyć jeszcze niezaładowaną do końca stronę.
erix
10.10.2009, 16:31:30
A nie lepiej startować skrypt jako konsolka...?
Wtedy wystarczy wywołać systemowo:
Kod
start php -f robot.php
i nowa instancja sobie leci, stara kończy wykonanie.
patryczakowy
12.10.2009, 22:27:00
możesz uściślić jak jako konsolka nie za bardzo rozumie?
thek
12.10.2009, 23:24:52
Chodzi mu o to, że skrypt uruchamiasz w powłoce systemowej poleceniem jako proces, nie zaś z poziomu przeglądarki jak to się zazwyczaj skrypty php uruchamia.
patryczakowy
13.10.2009, 06:17:14
ale którą konsole chodzi tą windowsowską co pokazuje się po wpisaniu cmd? czy może apache ma jakąś swoją? bo w winodwsowskiej prubowałem i co najwyżej mi się skrypt w notatniku otworzył
erix
14.10.2009, 15:10:01
Pokaż, co otworzyłeś.
Jeśli edycję - coś zepsułeś.
patryczakowy
14.10.2009, 21:52:56
W zależności gdzie się znajduje
w katalogu webserwa:
Kod
start php -f robot.php
otwiera mi katalog php
jeśli zmienię na
Kod
start php robot.php -f
nie znajduje pliku przechodzę do httpd i ponownie odpalam powyższą komendę to otwiera mi się notatnik
jmail
14.10.2009, 21:59:00
php nie będzie działało webserv chyba jako moduł dodaje php do apache'a a nie jako cgi
pobierz sobie wget dla windows
http://pages.interlog.com/~tcharron/wgetwin.html i zapisz skrypt na przykład taki
wget -q -O c:\test.html
http://www.jmail.pl#DEL /Q c:\test.html
i w miejsce
http://www.jmail.pl wstaw skrypt który ma się wywoływać.
zabisz jako skrypt.bat na przykład i zaplanuj w zaplanowanych zadaniach w Windows
patryczakowy
14.10.2009, 22:39:28
zaplanowanie zadania Windows odpadają gdyż nigdy nie znam czasu wykonania skryptu a zależy mi żeby po skonczeniu wykonywania odczekał minute i jeszcze raz ruszył
erix
14.10.2009, 22:55:36
Cytat
W zależności gdzie się znajduje
w katalogu webserwa:
Ok, najpierw spróbuj bez
start, bo nie wiem, czy sam skrypt dobrze wywołujesz.
jmail
14.10.2009, 23:12:05
masz

normalnie to jak wyprawa w daleką podróż była

jak zrobnić nieskończoną pętlę w shellu windowym, żeby póxniej jeszcze odczekało 60 sekund :F
Teraz to wrzuć do zaplanowanych zadań na start systemu.
na początku opóźniam o 120 sekund dając czas na podniesienie się wszystkich usług - jak za mało daj swoje

Kod
@echo off
ping 127.0.0.1 -n 120 -w 1000
:START
wget -q -O c:\test.html http://localhost/sciezka_do_skryptu/skrypt.php
DEL /Q c:\test.html
ping 127.0.0.1 -n 60 -w 1000
GOTO START
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.