Zaległe zadania WP-Cron
Co to oznacza
Jeśli na Twojej stronie WordPress zalega duża liczba niewykonanych zadań WP-Cron (20 lub więcej), system planowania zadań nie działa prawidłowo. WordPress posiada wewnętrzny scheduler (WP-Cron), który odpowiada za publikację zaplanowanych postów, sprawdzanie aktualizacji, wysyłanie e-maili, wykonywanie kopii zapasowych i inne cykliczne operacje. Liczbę zaległych zadań sprawdzisz poleceniem wp cron event list przez WP-CLI.
W odróżnieniu od systemowego crona, WP-Cron uruchamia się przy każdej wizycie na stronie. Jeśli strona ma mały ruch lub WP-Cron jest wyłączony — zadania się kumulują.
Jakie jest ryzyko
- Niewysłane powiadomienia — e-maile z formularzy kontaktowych, powiadomienia o komentarzach i zamówieniach mogą nie dochodzić.
- Niezainstalowane aktualizacje — automatyczne aktualizacje bezpieczeństwa nie zostaną zainstalowane, jeśli WP-Cron nie działa.
- Niedokończone kopie zapasowe — wtyczki backupowe polegają na WP-Cron do planowania i wykonywania kopii.
- Problemy z wydajnością — duża liczba zaległych zadań może spowodować gwałtowne obciążenie serwera, gdy WP-Cron w końcu się uruchomi i spróbuje nadrobić zaległości.
- Błędy wtyczek — zalegający cron może wskazywać na poważniejszy problem — błąd w którejś z wtyczek, który blokuje wykonanie kolejki.
Jak to naprawić
- Sprawdź status WP-Cron — czy stała
DISABLE_WP_CRONjest ustawiona natruewwp-config.php. Jeśli tak — WP-Cron jest wyłączony. - Skonfiguruj systemowy cron — jeśli WP-Cron jest wyłączony, zastąp go systemowym zadaniem cron (bardziej niezawodne):
# crontab -e */5 * * * * wget -q -O - https://twojastrona.pl/wp-cron.php?doing_wp_cron > /dev/null 2>&1 - Wyczyść zaległą kolejkę — użyj WP-CLI:
wp cron event list wp cron event run --all - Zdiagnozuj przyczynę — jeśli WP-Cron nie jest wyłączony, a zadania się kumulują, problem może leżeć w:
- Wtyczce, która zawiesza się podczas wykonywania zadania
- Zbyt niskim limicie pamięci PHP
- Blokadzie wywołań loopback (serwer nie może się połączyć sam ze sobą)