Całkowicie usuń zdarzenia cron WordPress i sprawdź otwarte zdarzenia cron WP

W tym przewodniku pokażę, jak sprawdzać i usuwać wpisy crona z Wordpress.

Dzisiaj znowu miałem przypadek, że moja witryna Wordpress klienta była boleśnie powolna, mimo że była hostowana na „serwerze zarządzanym”. Podczas wywoływania administratora WP można było zobaczyć, że wielokrotnie uzyskiwał dostęp do pliku wp-cron.php, a strony administratora czasami otwierały się w czasie od 30 sekund do 2 minut. Zapotrzebowanie na pamięć było również dość wysokie przy ponad 200 MB pamięci RAM. Wszystko wskazywało na to, że coś było nie tak.

Co to jest WP Cron?

WP cron to rodzaj wewnętrznego zadania cron, którego Wordpress używa do wykonywania regularnych zadań czyszczenia i uruchamiania skryptów administracyjnych. W przypadku stron Wordpress, które mają niewielu odwiedzających, może się zdarzyć, że Wordpress nie będzie w stanie wystarczająco często uruchamiać zadań cron z powodu niewielkiej liczby zadań. Jednak w większości przypadków zdarza się to rzadko, ponieważ na liście WP cron znajduje się tylko kilka zwykłych zadań. Są one już załatwiane po wywołaniu obszaru administracyjnego WP.

W tym przewodniku pokażę, jak sprawdzać i usuwać wpisy crona z Wordpress.
W tym przewodniku pokażę, jak sprawdzać i usuwać wpisy crona z Wordpress.

Zobacz listę wydarzeń WP Cron

Podejrzewałem, że Wordpress musi przetwarzać wiele zadań cron w tle, które są zawsze wykonywane przy normalnych wywołaniach administratora. Teraz sam Wordpress nie zapewnia sposobu przeglądania tej listy zdarzeń cron, ale z wtyczką „WP-Crontrol” otrzymasz listę w obszarze administracyjnym, która zawiera informacje o poszczególnych zadaniach, które obecnie znajdują się jeszcze w kolejce WP-Cron. Na przykład wygląda to tak:

Sprawdź listę WP-Cron-Events: Wygląda to tak na przykład z wtyczką WP-Crontrol.
Sprawdź listę WP-Cron-Events: Wygląda to tak na przykład z wtyczką WP-Crontrol.

W przypadku wyjątkowo powolnej instalacji Wordpressa, lista zawierała ponad 40.000 40.000 wpisów wygenerowanych przez wtyczkę „Huge-IT-Gallery”, które zamiast maleć, stale rosły. Wtyczka WP-Crontrol oferuje listę wszystkich zdarzeń crona i można je również usuwać pojedynczo za pomocą przycisku, ale przy ponad XNUMX XNUMX wpisów potrzebne było „bardziej kompleksowe” rozwiązanie.

Usuń wszystkie wpisy WP cron na raz

Na szczęście Internet oferuje szeroki wachlarz opcji informacyjnych i tak natknąłem się na polecenie »delete_option( 'cron' );«, które usuwa wszystkie wpisy w tabeli wp_options pasujące do obszaru „cron”.

opcja_usuwania( 'cron' );

Spowoduje to usunięcie wszystkich istniejących zdarzeń cron, które Wordpress ma obecnie w kolejce. Aby polecenie zostało wykonane, musisz umieścić je w pliku „functions.php” motywu. Następnie wywołaj dowolną stronę Wordpress w interfejsie, a następnie ponownie usuń linię. Jeśli motyw nie ma pliku „functions.php”, możesz go również skopiować do pliku headerphp, footer.php lub innych plików, które są uruchamiane podczas wywoływania witryny WordPress.

Tutaj na zrzucie ekranu możesz zobaczyć, gdzie można wstawić polecenie usunięcia wszystkich wpisów WP cron. W moim przypadku został on na krótko wbudowany w functions.php w folderze bieżącego motywu, a następnie ponownie usunięty.
Tutaj na zrzucie ekranu możesz zobaczyć, gdzie można wstawić polecenie usunięcia wszystkich wpisów WP cron. W moim przypadku został on na krótko wbudowany w functions.php w folderze bieżącego motywu, a następnie ponownie usunięty.

Korekta „winowajcy”

Teraz, gdy wszystkie zdarzenia cron zostały usunięte, WordPress znów działał bardzo szybko. Aby to sprawdzić, ponownie spojrzałem na listę zdarzeń crona za pomocą WP-Crontrol i zobaczyłem, że ciągle dodawane są nowe wpisy z wtyczki Huge-IT-Gallery. To tylko kwestia czasu, zanim wszystko znowu zwolni.

Ponieważ wtyczka była nadal wymagana, po prostu wyszukałem ciąg „cron” w kodzie źródłowym wtyczki i skomentowałem odpowiednie wiersze, które spowodowały utworzenie nowych zdarzeń cron dla WP-Cron. Tak więc instalacja Wordpress jest teraz trwale czyszczona i ładna, szybka.

[sc name=”Pomoc Wordpressa”]

 

 

Podobał Ci się artykuł i czy instrukcje na blogu Ci pomogły? Wtedy byłbym szczęśliwy, gdybyś bloga poprzez stałe członkostwo będzie wspierać.

6 odpowiedzi na „Całkowicie usuń zdarzenia WordPress Cron i sprawdź otwarte zdarzenia Cron WP”

  1. Witam,
    Brzmi prosto - świetnie!
    Ale: jeśli po prostu usunę WSZYSTKIE zadania crona, czy nie pojawią się problemy z zadaniami crona, które chcę zachować?
    Czy zadania cron innych wtyczek są po prostu ponownie tworzone?

    Dziękuję za informację i pozdrawiam
    Heike

    1. sir appleot

      Witaj Heike!
      Tak, w zasadzie nie usuwamy samych cronjobów, ale ich już zaplanowane wykonanie w przyszłości. Wtyczki następnie tworzą go ponownie bez konieczności robienia czegokolwiek. BEZPŁATNA! Jens

  2. Witam, jeśli mogę zadać małe, mam nadzieję, niezbyt skomplikowane pytanie. Moja wtyczka WordPress do wysyłania biuletynów („Biuletyn”) zawsze daje mi ostrzeżenie: „Wewnętrzny harmonogram WodPress nie jest uruchamiany wystarczająco często. […]” na wyświetlaczu statusu wszystkie punkty są dodatnie, z wyjątkiem punktu „Cron wzywa”, który ma komunikat „system blog cron NIE jest wyzwalany wystarczająco często Interwał wyzwalania: średnio 423 s, maks. 1550 s, min 12 s”

    Jak opisałeś, obejrzałem całość w WP-Control i zdarzenie jest wykonywane co 5 minut.

    Czy masz pojęcie, co mogę wygooglować? czy znasz takie zachowanie i masz bezpośrednie podejście?

    Dzięki z góry

    1. sir appleot

      Witaj Ricardo! Prawdopodobnie masz zbyt mało odwiedzających bloga, aby móc niezawodnie uruchomić zadanie cron. Wordpress prawie zawsze wykorzystuje odwiedzających do przetwarzania zadania cron w tym samym czasie. Ustawienie 5 minut jest podane w tabeli, dlatego WP-Control pokazuje to w ten sposób, ale po prostu się nie uruchamia. Ale rozwiązanie jest całkiem proste: rejestrujesz się w zewnętrznym serwisie zadań cron, takim jak DoTheJob.de lub innym (lub korzystasz z zadania cron z hostingu) i wywołujesz automatycznie wp-cron.php co 2-5 minut. Pełny adres URL to na przykład https://www.sir-apfelot.de/wp-cron.php – tylko z Twoją domeną. BEZPŁATNA! Jens

  3. Witam,
    świetna wtyczka, dzięki! Obecnie buduję zadanie cron strony na wywołaniu obsługiwanym przez serwer, tj. Z dezaktywowanym cronem Wordpress.
    Wtyczka wykonała tam dobrą robotę.
    Pozdrowienia Jens

Napisz komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone * oznakowane

Na blogu Sir Apfelot znajdziesz porady, instrukcje i recenzje produktów Apple, takich jak iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini i Mac Studio.

Promocje