WP-Cron a naplánované úlohy: diagnostika zpoždění a selhání

Jak funguje WP-Cron, proč se úlohy zpožďují a jak diagnostikovat frontu, zámky, chyby, Action Scheduler a systémový cron.

WP-Cron a naplánované úlohy: diagnostika zpoždění a selhání
Stručná odpověď

Zkontrolujte, zda je WP-Cron povolen, zda vzniká spouštěcí požadavek a které události se zpožďují. Najděte hook, vlastníka a chybu callbacku, nejen počet položek. Na spolehlivém serveru lze WP-Cron spouštět systémovým cronem; úlohy musí být idempotentní a monitorované.

WP-Cron spouští naplánované úlohy WordPressu, například publikování článku, čištění dočasných dat nebo synchronizaci. Na rozdíl od systémového plánovače se ve výchozím nastavení aktivuje návštěvou webu. Na málo navštěvovaném webu se může úloha zpozdit, při vysoké zátěži se naopak spouštění může překrývat nebo blokovat. Pluginy navíc přidávají vlastní události a po odinstalování ne vždy plán uklidí.

Když se neodešle e-mail nebo neproběhne import, tým často ručně spustí další pokus, aniž by zjistil stav. Tak mohou vzniknout duplicity nebo delší fronta. Diagnostika potřebuje název hooku, plánovaný čas, argumenty, poslední výsledek a aplikační logy. U WooCommerce se může používat také Action Scheduler, který má vlastní úložiště a administrační pohled.

Pochopte spouštění a časová očekávání

WordPress uloží událost na nejbližší čas, ale standardní WP-Cron ji nevykoná přesně jako hodinky. Po uplynutí času potřebuje požadavek, který zpracování spustí. Proto může plánované publikování na tichém intranetu proběhnout později. Časové pásmo administrace, serveru a dat uložených v UTC musí být při diagnostice srozumitelné.

Naplánovaná úloha nemá automaticky běžet v každém intervalu, pokud předchozí stále pracuje. Použijte zámek nebo frontu podle typu úlohy a nastavte maximální dobu trvání. U kritické integrace definujte přijatelné zpoždění. Úloha, která může hodinu počkat, nepotřebuje stejnou infrastrukturu jako zpracování objednávky.

Inventarizujte hooky, intervaly a vlastníky

Zobrazte seznam událostí s názvem hooku, dalším spuštěním, intervalem a argumenty. Identifikujte plugin nebo vlastní kód, který každý hook registruje. Podezřelé jsou události s neexistujícím callbackem, neobvykle krátkým intervalem, velkým počtem jednorázových položek nebo argumenty rostoucími při každém pokusu. Neodstraňujte hook jen podle cizího názvu.

Při deaktivaci pluginu ověřte, zda se naplánovaná úloha korektně zruší. Opuštěná událost může opakovaně vyvolávat chybu. Vlastní plugin má registraci provádět při aktivaci, zabránit duplicitám a při deaktivaci uklidit své hooky. Evidujte, které úlohy jsou obchodně kritické a kam směřuje upozornění, když se delší dobu nespustí.

  • Hook a jeho callback
  • Interval a další čas
  • Argumenty a ochrana před duplicitou
  • Provozní vlastník a priorita

Diagnostikujte chybu callbacku a zámku

Úloha může být správně naplánovaná, ale selhat kvůli chybě PHP, timeoutu, nedostatku paměti nebo odpovědi API. Zapněte bezpečné logování do souboru mimo veřejný výstup a spusťte konkrétní hook na stagingu se stejnými argumenty. Korelační identifikátor pomůže sledovat jeden pokus přes frontu a externí systém. Do logu nevkládejte tajné údaje ani celá osobní data.

Dočasný cron lock brání souběžnému spuštění, po pádu však může vzniknout zdánlivě zaseknutý stav, nebo naopak paralelní zpracování. Před ručním odstraněním zámku ověřte jeho čas a vlastníka. Úloha musí bezpečně zvládnout opakování, aby zásah nevytvořil druhou objednávku, e-mail nebo fakturu. Trvalá chyba má přejít do viditelného stavu.

Rozlišujte WP-Cron a Action Scheduler

Action Scheduler používá mnoho e-commerce rozšíření ke zpracování front a eviduje akce ve stavech pending, complete, failed a canceled. Velký počet dokončených záznamů nemusí být problém, rostoucí stáří čekajících už ano. Zkontrolujte skupinu, hook, počet pokusů a log konkrétní akce. Hromadné mazání nevyřeší callback, který stále selhává.

Frontu zpracovávejte po dávkách přiměřených serveru. Příliš velký souběh může vyčerpat databázová spojení, příliš malý nestihne příchod nových položek. Retenci dokončených záznamů nastavte podle diagnostické potřeby. Při migraci webu ověřte, že se staré a nové prostředí nespouštějí současně proti stejným externím systémům.

  • Stáří nejstarší čekající akce
  • Opakující se příčina selhání
  • Přiměřená velikost dávky
  • Pouze jedno aktivní produkční prostředí

Systémový cron zaveďte kontrolovaně

Na spravovaném serveru lze vypnout spouštění při návštěvách a volat WordPress cron systémovým plánovačem v pravidelném intervalu. Změna snižuje závislost na návštěvnosti, ale pouze pokud je serverová úloha správně nakonfigurovaná a monitorovaná. Nejprve ověřte cestu, uživatele, prostředí, timeout a logování. Nezapínejte obě cesty bez rozmyslu.

Po přechodu vytvořte syntetickou zkušební událost a sledujte čas vykonání. Upozornění má zachytit chybějící běh, růst fronty i opakovanou chybu kritického hooku. Runbook vysvětlí bezpečné ruční spuštění a kontrolu výsledku. Spolehlivý plánovač je ten, jehož selhání tým uvidí dříve než zákazník.

Časté dotazy

Proč se naplánovaný článek ve WordPressu nepublikoval včas?

WP-Cron může čekat na návštěvu, být vypnutý nebo selhat při spuštění. Zkontrolujte časové pásmo, naplánovanou událost, cron požadavek a PHP log. Na málo navštěvovaném webu může pomoci monitorovaný systémový cron.

Mohu smazat všechny neúspěšné úlohy Action Scheduleru?

Nejprve zjistěte hook, vlastníka a příčinu. Smazání odstraní diagnostickou stopu a úloha se může znovu vytvořit. Po opravě rozhodněte, které akce bezpečně zopakovat, zrušit nebo ponechat v historii.

Jak často spouštět systémový cron pro WordPress?

Interval vychází z nejkratší požadované doby a kapacity serveru. Neexistuje jedna hodnota pro každý web. Kritické procesy mohou potřebovat častější běh, běžné čištění výrazně méně; výsledek je třeba monitorovat.

Zdroje a další čtení

Adam Antoni, vývojář digitálních řešení
Adam Antoni · Webiant

Adam Antoni vyvíja weby, aplikácie a softvér na mieru. Prepája firemné systémy, automatizuje procesy a vytvára AI agentov. Pôsobí v Spišskej Novej Vsi a spolupracuje s firmami na celom Slovensku.

Potřebujete toto téma vyřešit ve svém projektu?

Napište, co chcete zlepšit, s čím dnes bojujete a jaký výsledek očekáváte. Na úvodní konzultaci projdeme vhodný rozsah a další postup.

Vyberte si, které cookies povolíte. Volbu můžete kdykoli změnit přes odkaz v patičce nebo tlačítko cookies.

Ochrana soukromí a podrobnosti o cookies