Tovább a tartalomhoz

WP Crontrol

A WP Crontrol ingyenes bővítmény a WordPress időzített feladatainak (WP-Cron) megtekintésére, kézi futtatására, szerkesztésére és az ütemezések kezelésére.

A WP Crontrol ingyenes bővítmény, amellyel a WordPress időzített feladatait (WP-Cron eseményeit) az admin felületen látod és kezeled. Megmutatja az események paramétereit, ütemezését, a lefutó függvényt és a következő esedékes időpontot. Eseményt szerkeszthetsz, törölhetsz, szüneteltethetsz, azonnal futtathatsz, és új eseményt, új ütemezést is felvehetsz. Hibakeresésnél akkor jön jól, ha egy bővítmény időzített feladata nem fut le, vagy túl sokszor fut.

A bővítményhez WordPress 6.6 és PHP 7.4 kell. Az események kezeléséhez a manage_options jogosultság szükséges, ez alapból az adminisztrátoroké.

  1. Menj a Bővítmények → Új hozzáadása oldalra.
  2. Keress rá: WP Crontrol.
  3. Kattints a Telepítés most, majd az Aktiválás gombra.

WP-CLI-vel:

Terminál
wp plugin install wp-crontrol --activate

Bedrock projektben Composerrel add hozzá, és utána aktiváld:

Terminál
composer require wp-plugin/wp-crontrol
wp plugin activate wp-crontrol

A bővítmény saját Cron menüt kap az admin oldalsávban. Ezen belül ezek az oldalak vannak: Cron Events, Cron Logs, Cron Insights, Cron Alerts, Cron AI és Cron Schedules. A korábbi Eszközök → Cron Events útvonal is működik. Ha nem kell a külön főmenü, a crontrol/top_level_menu szűrővel elrejtheted:

functions.php
add_filter( 'crontrol/top_level_menu', '__return_false' );

A Cron Events oldal minden ütemezett eseményt felsorol: a hookot, a paramétereket, az ütemezést (ismétlődés), a következő futás idejét és a hozzá kapcsolt függvényt. Az időpontokat a WordPress időzónájában jeleníti meg.

A lista figyelmeztet, ha egy eseményhez nincs függvény csatolva, vagy ha egy esemény lemaradt az ütemezéséről. Az események listáját CSV-ként is letöltheted az Export gombbal.

Egy esemény sorában a Run Now hivatkozásra kattintva az esemény azonnal lefut. A bővítmény ugyanúgy futtatja, ahogy a WordPress maga futtatja az ütemezett eseményeket. Fejlesztésnél ezzel nem kell megvárnod a következő esedékes időpontot.

  • Szerkesztés: az Edit hivatkozással megváltoztathatod az esemény következő futási idejét és az ismétlődését.
  • Szüneteltetés: a szüneteltetés letiltja az adott hook összes függvényét, de az esemény ütemezve marad. A hookot használó összes esemény együtt áll le, és együtt indul újra.
  • Törlés: a WordPress magjának eseményeit nem lehet törölni, mert a mag újra ütemezné őket. Egyes bővítmények eseményei törlés után is visszajönnek, mert a bővítmény újra beütemezi őket. Ilyenkor a szüneteltetés a megoldás. Ha egy esemény függvénye „None”, vagyis nincs mögötte kód, általában nyugodtan törölheted.
  • Új eseményt is felvehetsz, és több eseményt egyszerre is törölhetsz.

A Cron Schedules oldalon felveheted és törölheted az egyedi ismétlődéseket. A WordPress alapból az óránkénti, a napi kétszeri és a napi ütemezést ismeri. Az itt felvett új ütemezést utána kiválaszthatod egy esemény szerkesztésekor vagy létrehozásakor. A bővítmény leírása szerint ez a bővítményfejlesztőknek ad több lehetőséget az események ütemezésére.

A naplózás alapból ki van kapcsolva, eseményenként kapcsolható be. A bővítmény leírása szerint ilyenkor rögzíti a futás idejét, a hibákat, a HTTP-kéréseket, a kiküldött e-maileket és az adatbázis-lekérdezéseket. A bejegyzéseket 30 napig őrzi, oldalanként legfeljebb 10 000 darabot. Az eseményparamétereket nem menti el, a HTTP-kérések lekérdezőszövegét eltávolítja. Az eredményt a Cron Logs oldalon látod, a Cron Alerts oldalon pedig e-mail-értesítést kérhetsz sikertelen, naplózott eseményről.

A bővítmény PHP-kódot futtató eseményt is létre tud hozni. Ehhez az edit_files jogosultság kell, vagyis aki nem szerkeszthet fájlt az adminban, az ilyen eseményt sem kezelheti. Ha a wp-config.php-ban bekapcsolod a DISALLOW_FILE_MODS vagy a DISALLOW_FILE_EDIT állandót, a PHP-események kezelése teljesen letiltódik.

A PHP-események egészen kikapcsolhatók:

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

Ilyenkor a meglévő PHP-események a helyükön maradnak, de nem futnak le. Éles oldalon érdemes bekapcsolni, ha nincs rá szükséged.

A WP-CLI saját cron parancsa a bővítmény nélkül is elérhető. A WP-CLI dokumentációja szerint:

Terminál
# események listája
wp cron event list --fields=hook,next_run --format=json
# az esedékes események futtatása
wp cron event run --due-now
# egy hook következő eseményének futtatása
wp cron event run <hook>
# egy hook összes eseményének törlése
wp cron event delete <hook>
# elérhető ütemezések
wp cron schedule list

A wp cron event run --due-now figyelembe veszi a doing_cron tranzienst, így nem indít átfedő futást. A pontos kapcsolókat a wp help cron event <alparancs> mutatja.

  • Hibakereséshez együtt használd a Query Monitor bővítménnyel, ha egy esemény lassú vagy hibás.
  • Szüneteltetés előtt nézd meg, hogy a hookot más esemény is használja-e, mert az is megáll.
  • A WP-Cron alapból látogatáskor indul. Ha pontos időzítés kell, a HelloWP HelloCron szolgáltatásával kiválthatod, erről a WP-Cron kiváltása oldalon olvashatsz.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások