![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Ścieżki do poleceń musisz podawać bezwzględne. Cron nie koniecznie musi znać $PATH.
-------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 273 Pomógł: 52 Dołączył: 3.02.2013 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
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 -------------------- Jeżeli moja wypowiedź Ci pomogła użyj przycisku
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 17:11 |