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.

Cron5 úloh · posledních 7 dní
ÚlohaPoslední běhÚspěch
import-⁠skladu06:0096 %Úspěch
zaloha-⁠databaze02:00100 %Úspěch
sync-⁠cenik09:45100 %Běží
export-⁠fakturvčera86 %Chyba
feed-⁠heurekapř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
import-skladu.shbash
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}}'
● Kompletní popis endpointů je ve Swaggeru.

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
Běh 8f3k2mexport-⁠ucetnictvi · vypršení 30 min
  1. 23:00:02
    Spuštěno
    Zdroj: API · skupina nightly
  2. 23:00:41
    Log: Načteno 412 dokladů
    Úroveň info
  3. 23:31:00
    Nedoběhl
    Žádné volání 30 minut, zapsána kritická chyba
  4. 23:44:15
    Pozdní 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.

import-⁠skladuPosledních 7 dní
Upozornění zapnuta
Běhů za 7 dní
28
Úspěšnost
96 %
Průměrná doba
2 min 40 s
p95
4 min 05 s
+38 s proti minulému týdnu
Úspěšné27
Chybné1
Nedoběhlé0

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

  1. 01

    Vytvořte API klíč

    V administraci vygenerujte API klíč organizace. Omezený klíč potřebuje oprávnění pro cron monitor.

  2. 02

    Obalte úlohu voláním

    Na začátek přidejte start, na konec finish. Volitelně cron výraz.

  3. 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.

Č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.

Máte dotaz? Napište na podporu nebo se podívejte do ceníku.

Plánovač úloh
Zdarma, bez karty
Začít zdarma