![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 0 Dołączył: 26.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak można sprawdzić w skrypcie A, czy uruchomiony jest inny skrypt B (może być uruchomiony np. przez crona)?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 28.08.2009 Skąd: wertykalne przez większość dnia Ostrzeżenie: (0%) ![]() ![]() |
najlepiej by było jakbyś podał jakiś przykład skryptu, który chcesz sprawdzić.
Ogolnie rzecz biorąc, mozna rozwiązać ten problem w trochę inny sposób - pewnie nie jest to w 100% to o co Ci chodzi ale prawidłowe wnioski same się nasuwają: załózmy że skrypt B wykonuje kilka operacji, ktorych wynikiem jest nowa zmienna x. zatem wystarczy , że sprawdzisz (za pomoca if/while isset itp) w lub przed skryptem A czy ta zmienna została zadeklarowana czy nie. jesli skrypt A wykaże ze zmienna zoastala zadeklarowan to wniosek, że skrypt B sie wykonał. jesli nie wykaże zmiennej, to skrypt B sie nie wykonał (oczywiście zakładając, że nie jest to wynikiem błedów) |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Na początku swojego działania skrypt A tworzy plik/zapisuje coś do bazy, a na końcu to usuwa. Skrypt B sprawdza, czy istnieje plik/wpis w bazie. Jeśli nie, to znaczy, że A nie pracuje, jeśli tak, wręcz przeciwnie. Dobrą praktyką jest ustalenie jakiegoś timeoutu dla pliku/wpisu w bazie, by uniknąć sytuacji, w której po awarii skryptu A, skrypt B będzie otrzymywał informację, że A cały czas pracuje.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@achill:
Pokaż może jak sprawdzić z poziomu skryptu A czy skrypt B zadeklarował jakąś zmienną. Chętnie bym to sobie zobaczył. @batman: A co w przypadku, gdy skrypt po drodze się wysypie i nie zdąży zdjąć założonej przez siebie "blokady"? Edit: Aj, nie doczytałem - wspominasz o timeoucie. Ja to realizuję za pomocą zakładania blokad na pliki. Jeśli blokada jest założona to znaczy, że proces pracuje. W przypadku wysypania się skryptu z dowolnego powodu blokada samoczynnie się zdejmuje. Oto klasa Process:
Klasa jest napisana pod Kohanę więc zmodyfikuj się konstruktor by przyjmował pełną ścieżkę, a nie tylko nazwę pliku. Have fun (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 28.08.2009 Skąd: wertykalne przez większość dnia Ostrzeżenie: (0%) ![]() ![]() |
w kwestii sprostowania phpionie
1) zaznaczyłem że sprawdzenie zmiennej nie da nam w 100% tego co chcemy ale pozwoli sprawdzić czy skrypt się wykonał (tu moj bład bo chodziło przeciez o te ktore się jeszcze wykonują). 2) mimo tej nieścislości zasada myslenia jest podobna i ja i batman i Ty próbowaliśmy sprawdzić coś co powstaje tylko gdy skrypt zostanie uruchomiony ( w tym punkcie chyba się ze mną zgodzisz, że zmienna ze skryptu B może byc dowodem na jego wykonanie) 3) "chciałbym to zobaczyć", owszem bez timeouta pewnie by to ładnie wyglądało - permanentne 'skrypt B działa' (IMG:style_emoticons/default/wink.gif) ale czy nie wolno próbować? |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Spoko, tylko że napisałeś, że chcesz to zrealizować za pomocą sprawdzenia w skrypcie B czy skrypt A zainicjował jakąś zmienną. Według mojej wiedzy nie ma możliwości odczytu zmiennych utworzonych przez inny (zupełnie odrębny) skrypt. Jedynym rozwiązaniem jest wykorzystanie jakiś współdzielonych zasobów (plik, baza danych). Dlatego napisałem, że chętnie bym zobaczył próbę odczytu zmiennej $x zadeklarowanej w skrypcie a.php przez skrypt b.php.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 12:43 |