Plánované spouštění webových skriptů

Tipy & triky

Služba Cron Job nabízí automatické spouštění libovolného skriptu či webové prezentace dostupné na veřejné URL adrese. Dokonce lze nastavit i minutový interval spouštění, a to vše zdarma.

Plánované spouštění webových skriptů

Article in English can be found on dev.to/arxeiss/cron-job-org-free-cron-service-2ge

Pravidelné automatické spouštění bez lidského zásahu je téměř v každém software nutnost. Potřeba odesílat emailové upomínky, mazat staré expirované záznamy, zálohovat databázi. To je jen malý výčet. V Linuxových systémech se o to stará Cron, ale i jiné systémy mají své alternativy.

Nějakou verzi Cronu nabízí i sdílené webhostingy. Často ale omezují intervaly, ve kterých je možné skripty spouštět, nebo počet spouštěných skriptů. Spouštět Laravelu frontu, která odesílá emaily, jen každou hodinu není vhodné. To ale může být nejmenší možný interval u webhostingů.

CronJob - Vytváření jobu

Cron-Job.org to zvládne zdarma

Pokud webhosting neumožní intervaly zkrátit, je na čase přejít jinam, použít vlastní server, nebo použít službu jako je Cron-Job.org. Ta umožňuje nastavit libovolné množství skriptů, které se mají spouštět. Stačí zadat jen URL adresu a jak často se má spouštět. Přesto, že je zdarma, nabízí spouštění klidně každou minutu! Což přímo u veřejných hostingů je spíše jen sen.

GET, POST, HTTP Basic Auth, vlastní HTTP hlavičky, ...

Při vytváření jobu ke spouštění je možné specifikovat vše, co si jen vývojář může přát. Podporuje téměř všechny HTTP metody, lze spouštět i skripty na chráněných URL pomocí HTTP Basic Auth. A pokud ani to nestačí, lze přidat vlastní hlavičky.

Pokud služba nedokáže požadavek zpracovat, může zaslat emailovou notifikace o chybě. Pokud je takovýchto chyb 15 po sobě jdoucích, daný job je zakázán. I o tomto může služba informovat. Vše lze také sledovat na Dashboardu, který v srpnu prošel kompletním redesignem. Historie spouštění je sice omezená, na pravidelné spouštění cronu ale vystačí.

Cron-Job - Statistiky spouštění

Omezení a na co je potřeba pamatovat

Cron jobů lze vytvořit neomezené množství, stejně tak jejich spouštění lze nastavit libovolně často. V historii lze ale vidět pouze informace o posledních 25 vykonáních nebo maximálně za poslední 2 dny. Pokud skript běží déle než 30 s, spojení je ukončeno a považováno za selhané. Stejně tak, pokud skript vrátí více než 1024 bytů. Ideální je tedy vracet pouze "OK" a vše ostatní si ukládat do vlastních logů. Pokud skript může běžet déle než 30 s, je vhodné přidat tento kód:

// Pokud skript běží déle než 30s, Cron-job ukončí spojení.
// PHP poté ukončí vykonávaní skriptu, ať je kdekoli. Zavoláním následující
// funkce hned na to se tomuto chování zabrání. Skript poběží tak dlouho, jak bude moct.
ignore_user_abort(true);

Zkušenosti se službou Cron-job.org případně jinou alternativou můžete sdílet v komentářích.

K tomuto článku již není možné přidávat další komentáře