![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 259 Pomógł: 1 Dołączył: 3.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam skrypt php ktory musi na okraglo wykonywac petle i obrabiac dane (glownie laczac sie z innymi serwerami: api, scrapowanie danych, zewnetrzne bazy danych, etc). Uruchomiony jest w cronie co minute, jak obrobi pewna ilosc danych zapisuje status do bazy i sie wylacza - i tak w kolko. Problem w tym ze czasem te skrypty wykonuja sie w pare sekund a czasem w pare godzin wiec musze zapobiegac przed tym zeby cronjob nie uruchomil kolejnych instancji jezeli jedna juz chodzi. Skrypt jest uruchamiany w cronjob i wykonywany z poziomu ssh, przy kazdym wykonaniu sprawdzam czy tego skryptu nie ma juz na liscie procesow:
problem z tym rozwiazaniem jest taki ze czasem serwer nie zwraca takiej odpowiedzi jaka powinien (w shel_exec) np. zwraca informacje ze nie mozna bylo wykonac komendy z jakiegos powodu lub jakas inna wartosc i rozwiazanie to jest nie idealne a ja widze po procesach ze skrypt jest uruchamiany czasem nawet 5 razy na serwerze. Widzialem w projektach open source ze rozwiazuja to za pomoca lock_file, blokuja plik na poczatku wykonywania skryptu a zwalniaja na koncu. Skrypt na pewno sie nie powieli ale problem w tym ze takich skryptow mam sporo na roznych serwerach i czesto zwracaja bledy (np. przez przeciazony serwer do ktorego sie lacze, pad bazy danych, etc) ciezko jest przewidzec wszystkie ewentualnosci i ciagle musialbym je odblokowywac recznie jezeli skrypt by nie doszedl do konca. Moze zetkneliscie sie z takim problemem albo wiecie jak to lepiej rozwiazac ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 05:53 |