Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Cron]Zapobieganie duplikacji procesów
Mejdej
post
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?
Go to the top of the page
+Quote Post
everth
post
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.
Go to the top of the page
+Quote Post
Mejdej
post
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.
Go to the top of the page
+Quote Post
erix
post
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ę.
Go to the top of the page
+Quote Post
everth
post
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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 17:10