webh.pl

Cron i WP-Cron w WordPressie

Czym jest Cron, jak działa harmonogram zadań w systemach Linux oraz jak wyłączyć WP-Cron i zastąpić go systemowym Cronem.

  • czytania
  • Zaktualizowano:
Cron WP-Cron WordPress
Hosting

Cron (często pisany małą literą jako nazwa procesu) to wbudowany w systemy Unix oraz Linux harmonogram zadań. Działa w tle jako tzw. demon (proces ciągły) i dokładnie co minutę sprawdza swoje pliki konfiguracyjne, aby uruchomić przypisane mu skrypty lub polecenia o konkretnej, wskazanej przez Ciebie porze.

Dzięki niemu w pełni zautomatyzujesz powtarzalne procesy administracyjne, co eliminuje ryzyko błędu ludzkiego i oszczędza Twój czas.

Jak działa systemowy Cron?

Na hostingu zadania Cron konfiguruje się z poziomu panelu serwera. Wystarczy wskazać polecenie, które ma zostać wykonane, oraz określić, jak często serwer ma je uruchamiać.

Może to być zarówno zadanie wykonywane bardzo często (np. co kilka minut), jak i proces uruchamiany tylko raz dziennie lub raz w tygodniu.

Po zapisaniu zadania serwer będzie wykonywał je automatycznie zgodnie z wybranym harmonogramem, bez konieczności ręcznego uruchamiania.

Zastosowania Crona

Cron jest fundamentem zarządzania serwerami i zaawansowanymi aplikacjami webowymi.

Możesz wykorzystać go do zadań takich jak:

Automatyczne kopie zapasowe (backupy)

Skrypt może co noc o godzinie 2:00 tworzyć archiwum bazy danych i plików strony, a następnie wysyłać je na zewnętrzny serwer. Zyskujesz pewność, że w razie awarii nie stracisz danych z ostatniej doby.

Czyszczenie systemu

Serwery generują ogromne ilości logów i plików tymczasowych. Odpowiednia reguła uruchamiana raz w tygodniu usunie stare pliki, co zapobiegnie nagłemu przepełnieniu dysku serwera.

Synchronizacja danych (np. w e-commerce)

Sklepy internetowe często pobierają stany magazynowe i ceny od hurtowni zewnętrznych. Cron może wywoływać taki import co godzinę, dzięki czemu Twoi klienci zawsze widzą aktualną dostępność produktów.

Generowanie statystyk i raportów

Ciężkie operacje analityczne (np. podliczanie miesięcznej sprzedaży) mogą wykonywać się automatycznie w godzinach nocnych, kiedy ruch na stronie jest najmniejszy, co chroni serwer przed przeciążeniem w ciągu dnia.

Czym jest WP-Cron?

WordPress, jako aplikacja działająca na różnych systemach i hostingach, nie może domyślnie polegać na systemowym Cronie (ponieważ użytkownik może nie mieć do niego dostępu). Twórcy stworzyli więc WP-Cron – wirtualny harmonogram.

Niestety, WP-Cron nie działa w tle. Uruchamia się on tylko wtedy, gdy ktoś odwiedzi Twoją stronę internetową. WordPress przy każdym załadowaniu witryny sprawdza, czy nie minął czas wykonania jakiegoś zaplanowanego zadania (np. publikacji wpisu).

Dlaczego warto wyłączyć WP-Cron?

Takie rozwiązanie powoduje dwa poważne problemy:

Brak ruchu = brak zadań

Jeśli masz mały ruch na stronie i nikt nie wejdzie na nią przez całą noc, zaplanowany na 3:00 nad ranem backup wykona się dopiero wtedy, gdy pierwszy użytkownik otworzy stronę np. o 9:00.

Duży ruch = spadek wydajności

Przy tysiącach odwiedzin na minutę, ciągłe sprawdzanie harmonogramu przez WordPress niepotrzebnie obciąża bazę danych i spowalnia czas ładowania strony dla użytkowników.

Jak wyłączyć WP-Cron i zastąpić go Cronem systemowym?

Przeniesienie zadań WordPress do prawdziwego harmonogramu systemowego zdejmuje z aplikacji ciężar sprawdzania czasu i gwarantuje punktualność procesów.

Krok 1: Wyłączenie wirtualnego WP-Cron

Zaloguj się na swój serwer przez FTP lub Menedżer Plików w panelu hostingowym. W katalogu głównym strony otwórz do edycji plik wp-config.php i dodaj poniższą linię (najlepiej tuż nad tekstem informującym o końcu edycji):

define('DISABLE_WP_CRON', true);

Informacja

Od tego momentu wizyty użytkowników nie będą już wyzwalać żadnych zadań w tle.

Krok 2: Uruchomienie obsługi zadań przez system serwera

Teraz musisz nakazać serwerowi, aby sam regularnie zaglądał do WordPress i wywoływał zaplanowane akcje.

Otwórz sekcję Zadania Cron w swoim panelu hostingowym i dodaj nowe zadanie z częstotliwością np. co 10 minut.

Jako polecenie wpisz komendę, która wywoła plik odpowiedzialny za zadania za pomocą narzędzia curl:

curl -s https://twojadomena.pl/wp-cron.php?doing_wp_cron > /dev/null 2>&1

Wskazówka

Dzięki temu serwer co 10 minut wyśle ciche zapytanie bezpośrednio do mechanizmu zadań WordPress, a Twoja strona zyska na stabilności i szybkości działania.

Najczęstsze pytania

Jak często uruchamiać zadanie Cron dla WordPress?

W większości przypadków wystarczające jest wykonywanie zadania co 5-10 minut. Pozwala to na terminową realizację zaplanowanych zadań bez niepotrzebnego obciążania serwera.

Czy wyłączenie WP-Cron może spowodować problemy?

Nie, pod warunkiem że zastąpisz go zadaniem systemowym Cron. Jeśli wyłączysz WP-Cron i nie skonfigurujesz zadania Cron, zaplanowane akcje WordPress nie będą wykonywane.

Czy Cron działa na hostingu współdzielonym?

Tak. Większość firm hostingowych udostępnia możliwość tworzenia zadań Cron bezpośrednio z poziomu panelu hostingowego.