Bardzo częstą potrzebą aplikacji jest uruchamianie skryptu co X minuty/godziny. Zasadniczo to nic skomplikowanego, tylko trochę kodu PHP i wpisu crontab.Cronjob - jak to zrobić we właściwy sposób?
Mimo że napisałem sporo takich cronjobów w ostatnich latach, nadal nie widziałem żadnych dobrych praktyk, przynajmniej nie tak wiele. Podobnie jak w przypadku każdego "przetwarzania w tle", tak wiele rzeczy może pójść nie tak, zwłaszcza w ustawieniach produkcyjnych.
Wśród nich:
- wystąpił błąd podczas wykonywania cron i skrypt zmarł przetwarzanie połowie danych
- zadanie crona został przypadkowo rozpoczął dwukrotnie przez inny proces/błędu użytkownika/cokolwiek
- zadanie crona wziął sposób dłużej niż oczekiwano i skrypt nazywa się ponownie, chociaż jej nie odbywa się przetwarzanie danych
- itp
Jakie są najlepsze wskazówki do pisania solidnych, solidnych skryptów cronjob? Zapisanie pliku blokady potwierdzającego, że działa tylko jedna instancja, obszerne rejestrowanie i monitorowanie w celu uniknięcia wysłania dziesięciu tysięcy duplikatów wiadomości e-mail? Jakie są twoje pomysły?
Interesujące, że opublikowałeś to, ponieważ badałem i zastanawiałem się nad niektórymi z tych samych rzeczy. W moim przypadku naprawdę martwię się, jak skutecznie zaimplementować obsługę wyjątków w pisanym przeze mnie skrypcie powłoki. http: // stackoverflow.com/questions/6961389/exception-handling-in-shell-scripting ma dobre informacje na ten temat, jeśli jesteś ciekawy. Jestem przede wszystkim programistą Java i obsługa wyjątków jest bardzo solidna, ale wydaje się trudniejsza w kraju * nix. –
to będzie zależało od każdego uruchomionego skryptu, nie ma ogólnych odpowiedzi, niektóre potrzebują bardzo solidnego sprawdzania błędów, których niektóre nie potrzebują ... –
Założęłem to pytanie w oczekiwaniu na innowacyjne odpowiedzi ze szczegółowym uzasadnieniem ich zalet i wad, i jestem bardzo rozczarowany odpowiedziami "Oto co robię". – nickb