iControlWP

V tomto článku vysvětlíme:

  • Co je to WP Cron?
  • Jak funguje?
  • Proč selhává?
  • Jaké problémy způsobují chyby WP Cron?
  • Jak opravit WP Cron

Takže začněme…

Co je WP Cron?

Cron je příkaz systému UNIX pro plánování úloh, které se mají provést někdy v budoucnosti. Obvykle se používá k naplánování úlohy, která se provádí pravidelně.

WordPress používá soubor s názvem wp-cron.php jako virtuální úlohu cronu neboli naplánovanou úlohu, aby bylo možné automatizovat například

  • publikování naplánovaných příspěvků
  • kontrolu aktualizací zásuvných modulů nebo témat
  • zasílání e-mailových upozornění
  • zálohování
  • automatické aktualizace aplikace WordPress
  • …. a tak dále.

Jak to funguje?

Při každém načtení stránky WordPress kontroluje, zda je potřeba spustit WP Cron. Pokud taková potřeba existuje, pokusí se přes protokol HTTP odeslat požadavek do souboru wp-cron.php.

Volání tohoto souboru pomáhá udržovat WP Cron spuštěný jako samostatný proces na pozadí, aniž by se zpozdilo načítání stránky pro uživatele. Jakmile se WP Cron spustí, pokračuje v běhu, dokud nejsou dokončeny všechny požadované úlohy nebo dokud nedosáhne času provedení nastaveného v konfiguraci serveru.

Je důležité vysvětlit, že ve výchozí konfiguraci WordPress nepoužívá skutečnou úlohu cron pro plánování a další související úlohy. Místo toho se při každém načtení stránky na webu WordPress spustí soubor wp-cron.php. Ten se v podstatě ptá: „Už je čas něco udělat?“

Pokud jsou v době načtení stránky naplánovány nějaké úlohy, spustí se. Zde je však třeba poznamenat, že WP Cron neběží neustále jako systémový cron.

WP Cron se spustí pouze při načtení stránky – tj. když někdo navštíví stránku na vašem webu. To znamená, že pokud máte například naplánovanou úlohu na 16:00, ale do 22:00 nepřijde žádný návštěvník, úloha se do té doby nespustí.

Poznámka: Někdy se mohou objevit adresy URL s ?doing_wp_cron= následované řetězcem čísel.

Například:

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

Děje se tak proto, že za účelem provedení některých zpracování na pozadí (například publikování naplánovaných příspěvků) vás WordPress přesměruje na adresu URL s ?doing_wp_cron s příponou

Přečtěte si o tom více zde.

Proč to selhává?“

Když tedy někdo přistane na jakékoli stránce na vašem webu WordPress, wp-cron.php soubor mohl spustit a zkontrolovat, zda je třeba něco odeslat

Na mnoha hostitelích WordPressu to proběhne, jak má. Někteří hostitelé však spouštění této funkce zakazují, protože to znamená, že velký počet návštěvníků může spouštět virtuální úlohy cron mnohokrát, což spotřebovává prostředky na serveru. Je to také potenciální bezpečnostní chyba.

Dalším důvodem je, že některé zásuvné moduly a témata mohou při zpracování cronu způsobit fatální chyby (protože nemusely být správně otestovány) a to přeruší běh procesu cronu.

Nápověda: I když to není směrodatné a slouží to opravdu jen jako ukazatel v případě závažných problémů, na panelu zabezpečení pro Shield je v části „Protokol posledních událostí“ položka, která zobrazuje poslední spuštění jednoduchého testovacího cronu:

To by vám řeklo, zda vaše crony obecně fungují, nebo ne. Neznamená to, že všechny vaše crony fungují, ale znamená to, že váš systém WP Cron je pravděpodobně v pořádku.

Poznámka: WP Cron můžete spustit ručně. Nejprve je třeba zkonstruovat odkaz, a to následujícím způsobem:

  1. Vezměte adresu URL vaší administrace, např. example.com/wp-admin/
  2. Zaměňte „/wp-admin/“ za „/wp-cron.php?setcronjob“

Odkaz bude vypadat takto:

example.com/wp-cron.php?setcronjob

Tento odkaz stačí otevřít na samostatné kartě a WP Cron se spustí.

Jaké problémy způsobují chyby WP Cron?

Pokud se cron rozbije, neběží správně:

  • Automatické aktualizace WordPressu se nespustí
  • Kontrola aktualizací zásuvných modulů nebo témat se nezdaří
  • Příspěvky v časovém plánu se nezveřejní
  • Pokud WordPress nepoužívá skutečnou úlohu cronu pro plánování a další související úkoly, selžou e-mailová oznámení, automatické obnovení, účtování poplatků, oznámení o v/ze skladu.
  • Zálohování webu selže u zálohovacích zásuvných modulů, které jsou závislé na cronu

Také,

  • Může dojít k velké prodlevě mezi vydanými aktualizacemi a nainstalovanými aktualizacemi
  • Premiové zásuvné moduly nepropojují správně svůj aktualizační kód

    Některé prémiové zásuvné moduly nemají otestovaný svůj vlastní aktualizační kód s cronem WordPressu. To znamená, že při spuštění cronu jejich aktualizační kód nefunguje a automatické aktualizace prémiových prostředků selžou.

Toto je jen několik nejmarkantnějších problémů, které jsme zaznamenali.

Upozorňujeme, že pokud cron nefunguje, všechny automatické úlohy selžou.

Jak opravit WP Cron

WP Cron může být problematický a zúžit, kde cron padá, je složitá práce.

Vřele doporučujeme přečíst si tento článek zde.

Můžete si také přečíst:

  • Proč nefungují vždy automatické aktualizace WordPressu

.

Leave a Reply