Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][cron] Cron w praktyce.. obsługa z poziomu skryptu?
Forum PHP.pl > Forum > PHP
kukix
Witam.

Posiadam konto na serwerze nq.pl i zastanawiam się nad obsługa crona z pozimu skryptu.

Myśląłem, żeby zrobić tak:

1. ustalam creon aby uruchamiał skrypt cron_wykonaj.php co 5 minut.

2. Skrypt cron_wykonaj.php sprawdzał by w bazi danych w tabeli np "CRON_ZADANIA" czy są jakieś zadanai do wyonania.

3. Jeżeli o w momencie wykoniana cron_wykonaj.php jest jakieś zadania to jest przetwarzane.

W ten sposób miałbym łatwą obsługę crona z poziomu skryptu.
Co sądzicie o takim rozwiązaniu?

Mam pewne problemy ze sposobem zapisu zadań w tabeli "CRON_ZADANIA". Czy może umieszczasc tam linki do poszczególnych plików wykonujących operacje np operacja_1.php, operacja_2.php itd ?

Czy ktoś mogłby wypowiedzieć sięw tym temacie?
mar1aczi
Ścieżki do poleceń musisz podawać bezwzględne. Cron nie koniecznie musi znać $PATH.
mstraczkowski
Niektóre crony potrafią trwać długi czas jeżeli mowa o np. Synchronizacji oferty z zewnętrznymi źródłami.

Dodatkowo potrafią zjadać spore ilości pamięci, kilka takich cronów po kolei i twój skrypt padnie z powodu memory limit lub max execution time.

A w najgorszym wypadku dojdzie do zalockowania tabeli w bazie i tym podobne.

Także ta kwestię musisz przewidzieć i przemyśleć

Często jest tak że crony muszą być uruchamiane w odpowiedniej kolejności przykładowo najpierw wypadałoby pobrać nowe kategorie produktów a dopiero potem same produkty. Więc to kolejna rzecz do przemyślenia

Kolejna rzeczą jest to, że warto pomyśleć o mechanizmie kolejki, aby tylko jeden cron mógł być aktualnie uruchamiany. Tak aby po 5 minutach nie uruchomił się kolejny lub ten sam cron.

Kolejną przeszkodą jest to, że musisz przewidzieć sytuację zakleszczenia, kiedy przykładowo cron się wykonywał zablokował kolejkę i nagle się zawiesił przez co nie dał rady odblokować kolejki w rezultacie żaden cron nie będzie mógł zostać uruchomiony.

Pozdrawiam
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.