iControlWP

W tym artykule wyjaśniamy:

  • Co to jest WP Cron?
  • Jak to działa?
  • Dlaczego zawodzi?
  • Jakie problemy powodują błędy WP Cron?
  • Jak naprawić WP Cron

Więc, zaczynajmy…

Co to jest WP Cron?

Cron jest poleceniem UNIX do planowania zadań do wykonania kiedyś w przyszłości. Zwykle jest używany do zaplanowania zadania, które jest wykonywane okresowo.

WordPress używa pliku o nazwie wp-cron.php jako wirtualne zadanie cron, lub zaplanowane zadanie w celu zautomatyzowania rzeczy takich jak

  • opublikowanie zaplanowanych postów
  • sprawdzenie aktualizacji wtyczek lub motywów
  • wysłanie powiadomień e-mail
  • zapewnienie kopii zapasowej
  • automatyczne aktualizacje WordPress
  • …. i tak dalej.

Jak to działa?

Na każdym załadowaniu strony WordPress sprawdza, czy istnieje potrzeba uruchomienia WP Cron. Jeśli istnieje taka potrzeba, wtedy próbuje wykonać żądanie przez HTTP do pliku wp-cron.php.

Wywołanie tego pliku pomaga utrzymać WP Cron działający jako oddzielny proces w tle bez opóźniania czasu ładowania strony dla użytkownika. Po uruchomieniu WP Cron kontynuuje działanie, dopóki wszystkie wymagane zadania nie zostaną ukończone lub dopóki nie osiągnie czasu wykonania ustawionego w konfiguracji serwera.

Ważne jest wyjaśnienie, że w domyślnej konfiguracji WordPress nie używa prawdziwego zadania cron do tworzenia harmonogramów i innych powiązanych zadań. Zamiast tego za każdym razem, gdy strona jest ładowana w witrynie WordPress, WordPress uruchamia plik wp-cron.php. Zasadniczo pyta on „czy nadszedł już czas, aby coś zrobić?”.

Jeśli istnieją jakiekolwiek zadania zaplanowane w czasie ładowania strony, zostaną one uruchomione. Należy jednak zauważyć, że WP Cron nie działa ciągle, tak jak systemowy cron.

WP Cron będzie uruchamiany tylko przy ładowaniu strony – tj. Kiedy ktoś odwiedza stronę w twojej witrynie. Oznacza to, że na przykład, jeśli masz zadanie zaplanowane na 16:00, ale nie masz żadnych odwiedzających do 22:00, twoje zadanie nie zostanie uruchomione do tego czasu.

Uwaga: Czasami możesz zobaczyć adresy URL z ?doing_wp_cron=, po którym następuje ciąg liczb.

Na przykład:

https://example.com/what-is-wp-cron-article?doing_wp_cron=123456.874251298799871371475

Tak się dzieje, ponieważ, aby wykonać pewne przetwarzanie w tle (jak publikowanie zaplanowanych postów), WordPress przekierowuje Cię do adresu URL z ?doing_wp_cron appended.

Czytaj więcej o tym tutaj.

Dlaczego to się nie udaje?

Więc, gdy ktoś ląduje na dowolnej stronie w twojej witrynie WordPress, plik wp-cron.php może się odpalić i sprawdzić, czy musi coś wysłać

Na wielu hostach WordPressa, będzie to działać zgodnie z przeznaczeniem. Ale niektórzy gospodarze wyłączają tę funkcjonalność z działania, ponieważ oznacza to, że duże liczby odwiedzających mogą odpalać wirtualne zadania cron wiele razy, zużywając zasoby na serwerze. Jest to również potencjalna luka w zabezpieczeniach.

Innym powodem jest to, że niektóre wtyczki i motywy mogą powodować fatalne błędy podczas przetwarzania crona (ponieważ mogły nie zostać poprawnie przetestowane) i to przerwie działanie procesu crona.

Podpowiedź: Chociaż nie jest to rozstrzygające i służy tylko jako wskazówka w przypadku poważnych problemów, w Panelu Bezpieczeństwa dla Shield jest wpis w sekcji „Dziennik ostatnich zdarzeń”, aby pokazać ostatni raz, kiedy prosty testowy cron został uruchomiony:

To by ci powiedziało, czy twoje crony, ogólnie rzecz biorąc, działają. Nie oznacza to, że wszystkie twoje crony działają, ale oznacza to, że twój system WP Cron jest prawdopodobnie w porządku.

Uwaga: Możesz uruchomić WP Cron ręcznie. Pierwszą rzeczą do zrobienia jest skonstruowanie linku, a oto jak to zrobić:

  1. Weź swój adres URL administratora, np. example.com/wp-admin/
  2. Zastąp „/wp-admin/” z „/wp-cron.php?setcronjob”

Łącze będzie wyglądać tak:

example.com/wp-cron.php?setcronjob

Po prostu otwórz ten link w osobnej karcie, a WP Cron zostanie uruchomiony.

Jakie problemy powodują błędy WP Cron?

Jeśli cron się psuje, nie działa poprawnie:

  • Automatyczne aktualizacje WordPress nie będą działać
  • Sprawdzanie aktualizacji wtyczek lub motywów nie powiedzie się
  • Postanowienia harmonogramu nie zostaną opublikowane
  • Jeśli WordPress nie używa prawdziwego zadania cron do planowania i innych powiązanych zadań, powiadomienia e-mail, automatyczne odnowienia, opłaty rozliczeniowe, powiadomienia o stanie magazynowym i braku zapasów nie powiodą się.
  • Wykonywanie kopii zapasowych witryny nie powiedzie się w przypadku wtyczek do tworzenia kopii zapasowych, które zależą od crona

Ponadto,

  • Może wystąpić duże opóźnienie między wydanymi aktualizacjami a zainstalowanymi aktualizacjami
  • Wtyczki premium nie łączą się w swoim kodzie aktualizacji poprawnie

    Niektóre wtyczki premium nie przetestowały swojego niestandardowego kodu aktualizacji z cronem WordPress. Oznacza to, że gdy cron jest uruchomiony, ich kod aktualizacji nie działa, a automatyczne aktualizacje aktywów premium nie powiodą się.

To tylko kilka z najbardziej zauważalnych problemów, które widzieliśmy.

Proszę pamiętać, że jeśli cron nie działa, wszystkie automatyczne zadania zakończą się niepowodzeniem.

Jak naprawić WP Cron

Wprowadzenie WP Cron może być problematyczne, a zawężenie miejsca awarii crona to trudna praca.

Serdecznie polecamy przeczytanie tego artykułu tutaj.

Możesz również przeczytać:

  • Dlaczego automatyczne aktualizacje WordPressa nie zawsze działają?

.

Leave a Reply