przegląd WP-cron

WP-cron wykonuje określone zadania dla witryn opartych na WordPress. Nazwa cron pochodzi od uniksowego systemu do planowania zadań, począwszy od raz na minutę do raz w roku. Niezależnie od tego, czy jest to rutynowa konserwacja, czy zaplanowane alerty, każde polecenie, które może być wykonane w systemie Unix bez interwencji użytkownika, może być zaplanowane jako zadanie Cron.

WP-cron jest podobny do crona, ale różni się na kilka bardzo ważnych sposobów. Ta funkcja jest przeznaczona wyłącznie do obsługi rutynowych zadań WordPress:

  • sprawdź nową wersję rdzenia WordPress, motywów i wtyczek
  • oczyść spam

wtyczki i motywy mogą dodawać zadania do wykonania w regularnych odstępach czasu. Na przykład, jeśli masz wtyczkę, która skanuje Twittera w poszukiwaniu tweetów, a następnie włącza je do komentarzy, najprawdopodobniej odbywa się to za pomocą zadania WP-cron. WP-cron otwiera zupełnie nowy świat rzeczy, które może zrobić witryna oparta na WordPress.

Jak działa WP-cron?

główną różnicą między Cron i WP-cron jest sposób wyzwalania WP-cron. Cron to proces systemowy, który działa co minutę i szuka zadań do wykonania. WP-cron, ponieważ jest to system internetowy, może działać tylko wtedy, gdy ktoś odwiedza witrynę. Dlatego też, gdy ktoś przechodzi do twojej witryny WordPress, WP-cron sprawdza, czy coś trzeba zrobić. Dzięki głównym programistom WordPress robi to w sposób, który nie wpływa negatywnie na wydajność Twojej witryny.

problemy z witrynami o małym natężeniu ruchu

witryny o małym natężeniu ruchu WordPress mogą doświadczać pominiętych zadań, gdy ta funkcja jest uruchamiana przez odwiedzających. Jeśli ludzie nie odwiedzają Twojej witryny, WP-cron nie może wykonać. Nie oznacza to, że Twoja strona będzie wolna od poprzednich zadań, gdy ktoś w końcu odwiedzi Twoją witrynę. Niezależnie od tego, ile zadań WP-cron musi wykonać, są one uruchamiane w tle, aby wydajność witryny nie miała negatywnego wpływu.

problemy z witrynami o dużym natężeniu ruchu

Jeśli Twoja witryna zasilana WordPress jest o dużym natężeniu ruchu, możesz napotkać problemy z WP-cron. Głównymi problemami, które pojawiają się są warunki wyścigu i długie procesy biegowe.

  • stan rasy: Gdy więcej niż jeden użytkownik odwiedza Twoją witrynę i uruchamia WP-cron, aby wykonać to samo zadanie. WP-cron ciężko pracuje, aby wyeliminować warunki wyścigu, ale nadal mogą się zdarzyć, zwłaszcza w miejscach o dużym natężeniu ruchu.
  • długi proces uruchamiania: każde zadanie, które trwa dłużej niż standardowe 60 sekund. Programiści mogą dostosować czas działania zadania PHP za pomocą funkcjiset_time_limit(). Jeśli jest to ustawione na dłuższe niż okno między zadaniami, wtedy możesz skończyć z wykonaniem więcej niż jednej kopii wp-cron.php.

oba te problemy są rozwiązywane w wewnętrznym blokowaniu WP-Cron i nie są częstymi problemami; jednak nadal mogą się zdarzać.

Zarządzaj WP-cron wewnętrznie

WP-cron jest wstępnie skonfigurowany i gotowy do uruchomienia, więc nie musisz nic robić, aby włączyć go w witrynach WordPress.

podczas początkowej instalacji WordPressa kilka zadań jest automatycznie konfigurowanych. Możesz użyć kilku prostych poleceń z wiersza poleceń lub jednej z kilku wtyczek, aby znaleźć dokładne zadania uruchamiane przez WP-cron.

WP-cron z CLI

Jeśli masz zainstalowany Terminus, możesz łatwo zobaczyć wszystkie szczegóły tego, co dzieje się z WP-cron. Terminus, poprzez WP-CLI, może pokazać ci szczegóły takie jak:

  • co jest zaplanowane do uruchomienia
  • co będzie działać dalej
  • Hooki zdarzeń, które są skonfigurowane

Możesz również zaplanować własne zadania, wykonać istniejące zadania i zarządzać prawie wszystkim związanym z WP-Cron—wszystko z wiersza poleceń.

jedną z pierwszych rzeczy, które będziesz chciał zrobić, to przetestować WP-cron, aby upewnić się, że wszystko działa poprawnie. Wykonując poniższe polecenie, upewnij się, że zastąp SITE_NAME nazwą swojej witryny z Pulpitu Nawigacyjnego Pantheon i zastąp ENV_NAME żądanym środowiskiem („dev”, „test”, „live” lub nazwa gałęzi multidev).

terminus wp <site>.<env> -- cron test

Jeśli wszystko działa poprawnie, wynik wygląda tak:

Success: WP-Cron spawning is working as expected.

dzięki temu wiesz, że WP-cron działa poprawnie na twojej stronie. Stąd możesz uruchomić dowolną komendę związaną z cron za pomocą WP-CLI. Podczas korzystania z WP-CLI do zarządzania witryną Pantheon hosted WordPress, powinieneś używać Terminus. Format polecenia jest następujący:

terminus wp <site>.<env> -- cron <your wp-cron command and switches here>

wszystkie poleceniaterminus wp wymagają nazwy witryny i środowiska do działania.

Uwaga

jeśli chronisz swoją witrynę za pomocą ustawień zabezpieczeń na pulpicie nawigacyjnym, Terminus nie będzie mógł wykonać crona i możesz zobaczyć błędy raportowania stanu na pulpicie nawigacyjnym.

wtyczki

Jeśli chcesz mieć oko na WP-cron, ale nie podoba Ci się wiersz poleceń, istnieje kilka wtyczek, których możesz użyć. WP Ckontrol, na przykład, pokaże Ci wszystkie wydarzenia zaplanowane dla Twojej witryny. Możesz natychmiast tworzyć, edytować, uruchamiać lub usuwać zadania z poziomu panelu administracyjnego WordPress. Nowe akcje można również łączyć z harmonogramami lub przenosić istniejące akcje do nowych harmonogramów z poziomu sekcji Narzędzia.

WPX Cron Manager Lite wykona podobną pracę z nieco innym interfejsem użytkownika. Ta wtyczka wymaga jednorazowej instalacji WPX framework, którą możesz zrobić bezpośrednio ze strony menedżera wtyczek.

Zarządzaj WP-cron zewnętrznie

Jeśli szukasz większej kontroli nad zadaniami cron w swojej witrynie lub nie chcesz, aby WP-cron obsługiwał zadania wewnętrznie, możesz zamiast tego użyć zewnętrznych cronów. Rozwiąże to problemy omówione powyżej w przypadku witryn o dużym natężeniu ruchu i małym natężeniu ruchu.

Wyłącz WP-cron

pierwszą rzeczą, którą musisz zrobić, to wyłączyć wewnętrzne przetwarzanie WP-cron. Dodaj następujący wiersz do pliku wp-config.php:

wp-config.php
define('DISABLE_WP_CRON', true);

Uwaga

istnieje wiele ważnych zadań, którymi zajmuje się WP-cron, więc przygotuj się na wykonanie wszystkich poniższych kroków.

darmowe usługi

Po wyłączeniu WP-cron będziesz potrzebował usługi, która wywołuje URL w regularnych odstępach czasu. Najprostszym sposobem na to jest założenie konta za pomocą bezpłatnej usługi cron:

  • Easycron
  • Set cron Job
  • cron-job

każda z powyższych usług wykona zadanie. Wyłączając WP-cron, wyłączyłeś automatyczne sprawdzanie i wywoływanie skryptu wp-cron.php. Teraz będziesz musiał zadzwonić do tego adresu URL samodzielnie, korzystając z jednej z powyższych usług. W przypadku większości z nich jest to tak proste:

  1. Załóż konto
  2. Skonfiguruj zadanie wywołującehttps://yourdomain.tld/wp-cron.php?doing_wp_cron

Uwaga

Zastąp `yourdomain.tld z twoją domeną.

w zależności od tego, z jakiej usługi korzystasz, możesz mieć możliwość skonfigurowania wielu zadań w różnym czasie. Tworzenie jednego zadania, które wywołuje skrypt wp-cron.php co 15 minut, to wszystko, czego potrzebujesz. WP-cron zajmie się resztą. Jeśli tworzysz nowe harmonogramy, które muszą być uruchamiane częściej niż raz na 15 minut, musisz odpowiednio dostosować swoje zadanie.

ważne jest, aby nie dodawać wartości do zmiennej zapytaniadoing_wp_cron; musi być pusta, aby cron działał poprawnie.

Korzystanie z własnego serwera

Jeśli administrujesz własnym serwerem, możesz użyć usługi cron, aby wykonać Połączenie ze skryptemwp-cron.php. Musisz nauczyć się poprawnie skonfigurować zadanie crona i użyć czegoś takiego jak wget lub curl, aby pobrać stronę internetową. O ile nie podejmiesz specjalnych środków ostrożności, nie jest bezpieczniej używać własnego serwera w porównaniu z internetową usługą cron; jednak daje to większą kontrolę.

bezpieczeństwo

w większości przypadków wp-cron.php jest bezpieczne. Istnieje tylko jeden parametr, który może wpłynąć na skrypt(doing_wp_cron). Ta$_GET wartość nie jest filtrowana; jest on używany tylko jako flaga, a nie jako Wejście dla procesu lub zmiennej. Poza tym wszystkie dane wejściowe są ignorowane.

chociaż żaden skrypt na serwerze podłączonym do Internetu nie jest w 100% bezpieczny,wp-cron.php obecnie nie ma żadnych znanych luk ani exploitów.

wtyczki Cron WordPress

WordPress ma wiele wtyczek, które kontrolują zarówno wewnętrzne zadania WP-cron, jak i zewnętrzne Zadania cron. Ponieważ Pantheon nie świadczy usług Cron, nie zalecamy ani nie zniechęcamy do korzystania z danej wtyczki. Zachęcamy do zapoznania się z listą wtyczek Cron WordPress i eksperymentowania w środowisku deweloperskim, aby znaleźć ten, który najlepiej odpowiada twoim potrzebom.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.