Elysia Cron: ladíme spouštění procesů v Drupalu

Proces spouštění naplánovaných úloh v redakčním systému Drupal neumožňuje v administraci kromě nastavení intervalu spouštění žádné další úpravy. S pomocí modulu Elysia Cron však upravíte časy spouštění jednotlivých procesů nebo třeba jejich pořadí.

Možnosti nastavení cronu se v průběhu jednotlivých verzí Drupalu postupně vyvíjeli. Pokud si vzpomenu na Drupal 5 a 6 (na svou první 4.x pohánějící Maxiorla si už fakt nepamatuju), tak jste nemohli přímo z administrace Drupalu měnit prakticky nic. Adresu cron.php bylo dokonce nutné spouštět v požadovaném intervalu mimo Drupal, například nějakým voláním na serveru.

Drupal 7 v sobě obsahuje funkcionalitu, kterou jste do předchozích verzí mohli doplnit modulem Poormanscron. Tedy cron se spouští již automaticky v rámci Drupalu, jakmile na něj dojde čas a stránku načte nějaký návštěvník. Z toho logicky vyplývá, že pokud chcete události navázané na cron skutečně spouštět v nějakou konkrétní hodinu a minutu, stále musíte sáhnout po volání cron.php nějakou serverovou službou. Kdyby v daný čas nikdo na web nekoukal, cron by se totiž standardně spustil až při nebližší návštěvě webu.

Na rozdíl od předchozích verzí je však cron v Drupalu 7 zabezpečen. Tedy není jej možné spouštět jen voláním cron.php, do adresy je ještě nutné doplnit parametr se zabezpečovacím klíčem, což je řetězec náhodně vygenerovaných znaků. Důvod je zřejmý - cron spouští leckdy i náročné procesy a asi není dobrý nápad, aby někdo zlomyslný cron na vašem webu zvenčí neustále volal a web vám tak vytěžoval.

Záznamy do cronu přidávají různé moduly - například Simplenews pro odesílání newsletterů, Statistics pro čištění logu, Scheduler pro vydávání obsahu atd. Pomocí funkce hook_cron() napojíte na volání cronu i svůj modul, kterým potřebujete spouštět nějaké naplánované úlohy.

Tolik základní připomenutí toho, co je v Drupalu cron, jak funguje a k čemu se používá. Co v Drupalu 7 v jeho základní podobě nenajdete, je nějaký přehled procesů, které jsou na cron napojeny. Nemáte možnost říci, zda se budou spouštět při každém volání cronu, nebo méně častěji. Jste schopni jen nastavit interval volání cronu jako takového a tedy spouštění všech naplánovaných procesů zaráz.

Ovládněte cron s modulem Elysia Cron

Poté, co si do Drupalu nainstalujete modul Elysia Cron, přejděte do administrační části Nastavení > Systém > Cron.  Místo tlačítka pro jeho spuštění a úpravu intervalu zde nyní uvidíte podrobné informace o posledním průběhu cronu - čas jeho spuštění, počet provedených operací i čas, který cron potřeboval k vyřízení požadovaných úkolů. Navíc je zde vidět i průměrný a nejdelší čas běhu cronu.

Kromě toho je zde už vidět seznam jednotlivých úloh, které byste neměli mít problém identifikovat dle názvu modulu. Časy spuštění a délku trvání vidíte v tabulce rozepsánu pro úlohy volané i těmito jednotlivými moduly. Pokud jejich vývojáři nebyli lajdáci, pak v seznamu uvidíte i popisky jednotlivých úloh. Každou z nich můžete ručně spustit, aniž by se prováděl kompletní cron.

Navíc zde přibyla záložka Nastavení. V sekci Installation setings zde upravíte hlavní interval běhu cronu. Navíc lze specifikovat IP adresy, které k jeho volání mají přístup, časový limit pro běh cronu, předdefinované intervaly, zabezpečovací klíč nebo třeba interval pro propojení na HostTracker.

Asi nejčastěji budete laborovat s nastavením v sekci Single job settings. Jednotlivé úlohy, které jsou napojeny do cronu, je možné zcela vypnout, spíše jim ale budete měnit interval jejich spouštění. Stejně tak můžete upravit jejich váhu, tedy pořadí, v jakém jsou volány. Toto považuji za velmi důležité, mnohdy je třeba provést nějakou naplánovanou úlohu dříve, než jinou, která očekává již zpracovaná data.

Elysia Cron

V nastavení poskytnutém modulem Elysia Cron najdete ještě záložku Maintenance, kde je možné resetovat statistiky běhu jednotlivých úloh v cronu.

Myslím si, že u větších webů, kde se potýkáte se spolehlivostí běhu cronu, je modul Elysia Cron nezbytností a pomůže vám dosáhnout bezproblémového fungování.

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru