Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Kontrolowanie wykonywania crona w ssh
ornitolog
post 25.01.2017, 12:42:32
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 20.12.2013

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


Witam, mam napisane crony w php i uruchamiam je w ssh ze wzgledu na bardzo dlugi czas wykonywania. Niestety robie to recznie a chcialbym zautomatyzowac, pytanie tylko jak je wpisac do cronjobs jezeli nie ma max czasu wykonywania skryptu, on moze chodzic minute a moze i godzine. Jest jakas mozliwossc zeby z poziomu php sprawdzac czy skrypt jest uruchomiony ? Moze macie jakis inny pomysl zeby to kontrolowac ? Musi sie wykonywac tylko raz w jednym czasie i musi sie uruchamiac cyklicznie.

Myslalem o tym zeby wpisywac w plik informacje gdy sie wykonuje, i wpisywac gdy sie wykona ale jezeli bedzie po drodze jakis blad albo die() to lezy :/

Ten post edytował ornitolog 25.01.2017, 12:43:55
Go to the top of the page
+Quote Post
Mlodycompany
post 25.01.2017, 13:45:32
Post #2





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


możesz sobie zapisywać gdzieś pid odpalanego procesu i przy każdym odpaleniu sprawdzać czy jest uruchomiony proces w systemie z tym pidem i jeśli jest to robić die
Go to the top of the page
+Quote Post
lukaskolista
post 25.01.2017, 13:56:24
Post #3





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Trzeba zrobić prostą blokadę. Gdzieś zapisujesz coś, co świadczy o tym, że skrypt jest uruchomiony. W cronie ustawiasz uruchamianie np. co minutę. W skrypcie na podstawie tego czegoś zapisanego gdzieś tam sprawdzasz, czy skrypt pracuje. Jak pracuje, to przerywasz jego wykonywanie. Po zakończeniu wykonywania skryptu usuwasz taką blokadę.

Tym czymś gdzieś tam może być w najprostszym przypadku utworzenie pliku o nazwie unikalnej dla danego skryptu, ale niezmieniającej się, np. dla skryptu accountUpdate możesz tworzyć plik o nazwie account-update.

Powyższe rozwiązanie jest najprostszym z możliwych i ma sporo ograniczeń, ale się sprawdza. Ważne jest, aby w jakiś sposób przechwytywać błędy skryptu powodujące kończenie jego pracy w celu usunięcia blokady - inaczej plik zawsze będzie istniał i skrypt się już nie uruchomi.

Ten post edytował lukaskolista 25.01.2017, 14:00:04
Go to the top of the page
+Quote Post
Pyton_000
post 25.01.2017, 14:25:04
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


użyj do tego programu flock i ustaw cron np co 5 min:

Kod
flock -xn /home/vagrant/forever.lock -c php -f ./script_path/script.php
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 13:01