Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Cron]Zapobieganie duplikacji procesów
Mejdej
post 20.08.2010, 16:22:36
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.01.2010

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


Witajcie,

sprawa pewnie banalna, ale mam problem. Aby pobrać dane, odpalam Crona co 5 minut. Niestety z powodu kiepskiego serwera pobieranie trwa raz 20 sekund, a za drugim razem 15 minut. Nie mogę sobie pozwolić na odpalanie Crona co np. kilka godzin bo jestem ograniczony czasowo. Problem polega na tym, że procesy duplikują się, ponieważ jeden nie skończył działania, a drugi już się rozpoczął. Próbowałem robić to metodą: killall - 9 wget | wget adres.php ale nie działa. Wszystko się "zamula" i przestaje praktycznie ściągać. Jakie znacie sposoby na zabijanie rozpoczętego juz procesu i uruchomienie zaraz po nim kolejnego kontynuującego tamten zabity?


--------------------
porównanie lokat
Go to the top of the page
+Quote Post
everth
post 20.08.2010, 16:39:59
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


A sprawdziłeś Google? Pierwsze dwa linki zawierają rozwiązanie.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
Mejdej
post 20.08.2010, 22:37:05
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.01.2010

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


Dzięki za odpowiedź, ale na takie rozwiązanie to sam wpadłem. Tylko, że z nim jest taki problem, że jak skrypt w czasie działania się z jakiegoś powodu wywali to nie odblokuje pliku i już nic nię będzie mógł cron zrobić. Chyba, że coś źle zrozumiałem.

A googla przeglądałem dość długo i nic sensownego tam nie odkryłem.


--------------------
porównanie lokat
Go to the top of the page
+Quote Post
erix
post 20.08.2010, 23:01:08
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Tylko, że z nim jest taki problem, że jak skrypt w czasie działania się z jakiegoś powodu wywali to nie odblokuje pliku i już nic nię będzie mógł cron zrobić

To - mimo wszystko - możesz utworzyć inny plik i potem sprawdzać pod względem czasu modyfikacji, który jest ostatni.

A stare usuwać jakąś śmieciarką, np. raz na dobę.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
everth
post 20.08.2010, 23:53:36
Post #5





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Opakuj sobie skrypt PHP w basha. Wtedy będziesz miał znacznie większą pewność że jak proces PHP zakończy działanie (nieważne z jakiego powodu) to i tak będziesz mógł wykonać pewne działania dodatkowe - np. usunąć plik blokady (chyba o to ci chodzi).

A w pliku blokady możesz sobie dodatkowo zapisać nazwę binarki i PID - wtedy skontrolujesz czy blokada nie jest martwa. Rozwiązań jest wiele.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
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: 7.07.2025 - 00:35