Systém · Plánovač úloh
Žádný cron
neselže potichu
Pro vývojáře a provozní týmy, jejichž noční importy, zálohy a synchronizace běží na vlastních serverech. Úloha na začátku a na konci zavolá API. Když se odmlčí, BizKitHub běh uzavře jako nedoběhlý a dá vám vědět.
- Start, logy, heartbeat a výsledek každého běhu
- Nedoběhlé běhy se uzavírají každých 10 minut
- Podle cron výrazu pozná i úlohu, která se nespustila
Bez kreditní karty. Spuštění za 5 minut.
| Úloha | Poslední běh | Úspěch | |
|---|---|---|---|
| import-skladu | 06:00 | 96 % | Úspěch |
| zaloha-databaze | 02:00 | 100 % | Úspěch |
| sync-cenik | 09:45 | 100 % | Běží |
| export-faktur | včera | 86 % | Chyba |
| feed-heureka | před 2 h | — | Nespuštěno |
- Jakýkoli jazykStačí HTTP volání, cron může běžet kdekoli.
- Vypršení po nečinnostiVýchozí hodina, nastavitelné od 10 sekund do 7 dnů.
- Plán spouštěníCron výraz, časová zóna a tolerance zpoždění.
- UpozorněníChyba, nedoběhnutí i vynechaný běh se zapíšou a ohlásí.
Proč dohled nad crony
Cron, který nic nehlásí, může být mrtvý
Plánované úlohy běží v noci a nikdo je nesleduje. O tom, že import neproběhl, se dozvíte ve chvíli, kdy zákazníkovi chybí zboží nebo účetní data.
Dnes
- Výstup cronu končí v logu na serveru, kam se nikdo nedívá
- Úloha, která zamrzne, vypadá stejně jako úloha, která běží
- Když se server restartuje a crontab zmizí, nikdo si toho nevšimne
- Jak dlouho úloha běží a jestli se zpomaluje, neví nikdo
S BizKitHub
- Logy každého běhu jsou v administraci podle úrovní
- Běh bez heartbeatu se po vypršení uzavře jako nedoběhlý
- Vynechaný plánovaný běh se označí jako nespuštěný
- Průměrná doba, p95 a úspěšnost za posledních 7 dní
Napojení přes API
Tři volání a úloha je pod dohledem
Na začátku běhu zavoláte start, během něj posíláte logy nebo heartbeat a na konci finish s výsledkem. Krátkou úlohu zapíšete i jedním voláním zpětně. Nová úloha se v přehledu objeví sama s prvním během.
- Logy v dávkách s úrovní info až kritické
- Výsledek běhu jako JSON, návratový kód a spotřeba paměti
- Idempotentní start: opakované volání nevytvoří druhý běh
- Skupiny úloh pro filtrování, třeba nightly nebo hourly
API="https://api.bizkithub.com/api/v1/cron-run"
RUN=$(curl -s -X POST "$API/start?apiKey=$KEY" \
-H 'Content-Type: application/json' \
-d '{"code":"import-skladu","schedule":"0 6 * * *",
"scheduleTimezone":"Europe/Prague"}' | jq -r .id)
php bin/import-stock.php
curl -s -X POST "$API/$RUN/finish?apiKey=$KEY" \
-H 'Content-Type: application/json' \
-d '{"status":"success","report":{"processed":1240}}'Nedoběhlé a nespuštěné
Ticho je taky signál
Každý běh má vypršení po nečinnosti. Když do té doby nepřijde žádné volání, běh se uzavře jako nedoběhlý a zapíše se kritická chyba. Pokud úloha doběhne později, uloží se i její pozdní výsledek. S cron výrazem navíc systém hlídá, jestli se úloha vůbec spustila.
- Kontrola vypršených běhů každých 10 minut
- Pozdní dokončení se uloží a ohlásí zvlášť
- Tolerance pro vynechaný běh: výchozí 10 % intervalu, 5 minut až 1 hodina
- Plán nastavený v administraci aplikace nepřepíše
- 23:00:02SpuštěnoZdroj: API · skupina nightly
- 23:00:41Log: Načteno 412 dokladůÚroveň info
- 23:31:00NedoběhlŽádné volání 30 minut, zapsána kritická chyba
- 23:44:15Pozdní dokončeníAplikace nahlásila úspěch po vypršení
Přehled úlohy
Zpomaluje se import? Uvidíte to v číslech.
Detail úlohy ukazuje statistiky za celou dobu i za posledních 7 dní a graf běhů za 30 dní. Upozornění zapnete nebo vypnete pro každou úlohu zvlášť a úlohu si můžete přejmenovat nebo skrýt.
Co všechno umí
Dohled, který si nemusíte stavět
Start a finish
Běh má začátek, konec, výsledek a zprávu, třeba text chyby.
Heartbeat
Dlouhá úloha prodlužuje vypršení, dokud žije.
Záznam jedním voláním
Krátký běh zapíšete zpětně i s logy, až doběhne.
Logy podle úrovní
Info, úspěch, varování, chyba a kritické, až 10 000 záznamů na běh.
Plán spouštění
Cron výraz s časovou zónou IANA, příští očekávaný běh v přehledu.
Statistiky
Úspěšnost, průměr, p95 a počet nedoběhlých za 7 dní.
Upozornění
Chyba, nedoběhnutí i vynechání se zapíšou do logu. Nedoběhlé a vynechané běhy přijdou i e-mailem.
Vlastní kvóta
Volání cron monitoru mají vlastní limit, 10 000 požadavků za hodinu na API klíč.
Kontext běhu
Hostitel, parametry a libovolná metadata ke každému běhu.
Jak začít
První úloha pod dohledem za pár minut
- 01
Vytvořte API klíč
V administraci vygenerujte API klíč organizace. Omezený klíč potřebuje oprávnění pro cron monitor.
- 02
Obalte úlohu voláním
Na začátek přidejte start, na konec finish. Volitelně cron výraz.
- 03
Sledujte přehled
Úloha se objeví v sekci Cron s prvním během.
Pro koho
Úlohy, které nesmí tiše selhat
Importy a feedy
Sklad, ceníky a produktové feedy, na kterých závisí e-shop.
Zálohy
Noční záloha databáze, o které chcete vědět, že proběhla.
Účetní exporty
Export dokladů do účetnictví s počtem zpracovaných záznamů.
Synchronizace
Přenos dat mezi systémy, kde se chyba projeví až po dnech.
Propojené moduly
Funguje nad stejnými daty jako zbytek firmy
Časté otázky
Na co se ptáte u plánovače úloh
Spouští BizKitHub moje úlohy?
Ne. Úlohy dál běží na vašem serveru, například z crontabu. BizKitHub zaznamenává jejich běhy, hlídá je a upozorní vás na problém.
Co když úloha zamrzne?
Pokud do vypršení nepřijde žádné volání, běh se uzavře jako nedoběhlý a zapíše se kritická chyba. Výchozí vypršení je 60 minut, dlouhé úlohy ho prodlužují heartbeatem.
Jak poznáte, že se úloha vůbec nespustila?
Když s během pošlete cron výraz a časovou zónu, systém ví, kdy má přijít další běh. Pokud nepřijde ani po toleranci, úloha se označí jako nespuštěná.
V jakém jazyce musí být úloha napsaná?
V jakémkoli. Stačí umět poslat HTTP požadavek, třeba přes curl ze shellového skriptu.
Můžu upozornění pro některé úlohy vypnout?
Ano. Upozornění zapínáte a vypínáte u každé úlohy zvlášť. Opakované chyby téže úlohy se hlásí nejvýš jednou za hodinu.
Přestaňte doufat, že cron proběhl
Založte si účet zdarma, vytvořte API klíč a první úlohu napojíte dvěma voláními.