Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Cron]Zapobieganie duplikacji procesów
Forum PHP.pl > Forum > Serwery WWW
Mejdej
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?
everth
A sprawdziłeś Google? Pierwsze dwa linki zawierają rozwiązanie.
Mejdej
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.
erix
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ę.
everth
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.