Crony

Naplánované HTTP požadavky spouštěné podle cron rozvrhu ve vašem projektu.

Úvod

Cron je naplánovaná úloha, kterou Futrou za vás spouští v pravidelných intervalech — sami nic nespouštíte ani neudržujete online. Každý cron patří k projektu, běží v konkrétním regionu a účtuje se podle vlastního plánu, stejně jako serverlet nebo volume.

Cron má typ, který určuje, co se stane, když se spustí:

  • Simple (HTTP) — zavolá zadanou URL adresu zvolenou HTTP metodou, případně s hlavičkami a tělem požadavku. Hodí se na pravidelné pingy, webhooky nebo prohřívání cache u vašich serverletů či jiných koncových bodů.
  • Code (JS) — místo volání URL spustí krátký JavaScript kód.

Při každém spuštění podle rozvrhu Futrou provede cron podle jeho typu a zaznamená výsledek.

Rozvrh

Rozvrh cronu je standardní 5polohový cron výraz: minuta hodina den měsíc den_v_týdnu, například 0 * * * * pro spuštění jednou za hodinu. Podporované jsou zástupné znaky (*), rozsahy (1-5), výčty (1,3,5) i krokové hodnoty (*/5), stejně jako v běžném crontab formátu.

Minimální interval je jednou za minutu — kroková hodnota menší než 1 v poli minut (např. */0) je odmítnutá, takže cron nelze naplánovat na častější spouštění než jednou za 60 sekund.

Plány

Každý cron běží na cron plánu — účtovací úrovni, stejný koncept jako plán serverletu. Pokud plán nezvolíte sami, cron se vytvoří na výchozím veřejném plánu. Cena se v administraci zobrazuje za minutu i jako odhad měsíčních nákladů, ještě než ji potvrdíte.

Region

Cron běží v konkrétním regionu, nebo ho můžete nechat na Auto a nechat Futrou, aby ho přiřadilo automaticky.

Vytvoření cronu

Při vytvoření cronu zadáváte název, rozvrh a pole podle zvoleného typu:

  • Název — používá se v administraci.
  • Rozvrh — cron výraz popsaný výše.
  • Typsimple (HTTP) nebo code.
  • U Simple cronu: HTTP metoda a URL k zavolání. Hlavičky a tělo požadavku jsou volitelné.
  • U Code cronu: kód v JavaScriptu, který se spustí.
  • Zapnuto — jestli se cron podle rozvrhu skutečně spouští; vypnutý cron si drží konfiguraci, ale neběží.

Testování cronu

Než cron uložíte, můžete ho jednou spustit přes POST /crons/test a rovnou vidět výsledek bez vytvoření čehokoli nebo dopadu na rozvrh. Testovací endpoint validuje stejná pole jako vytvoření cronu, okamžitě ho spustí a vrátí výsledek — stav, výstup, dobu trvání a časy začátku a konce — aniž by se cron uložil. Testovací požadavky jsou rate-limitované podle IP, aby nedošlo k nechtěnému zahlcení cílové URL.

Úprava a smazání

Název, rozvrh, typ, cílová pole, region i zapnutý stav cronu lze po vytvoření kdykoliv změnit přes PATCH /crons/:cronId. Smazáním přes DELETE /crons/:cronId cron přestane běžet a zcela zmizí.

Vztah k projektům a serverletům

Crony patří k projektu jako každá jiná služba Futrou a běžně se používají k pravidelnému volání serverletu ve stejném projektu — například k pravidelnému zavolání endpointu /cron nebo /cleanup. Cron při vytvoření není vázaný na konkrétní serverlet — jednoduše volá URL a metodu, kterou nastavíte, ať už jde o veřejnou adresu serverletu, interní endpoint, nebo libovolnou externí URL.

Naposledy upraveno