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ć:
- Weź swój adres URL administratora, np. example.com/wp-admin/
- 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