Preskoči na glavni sadržaj

Graditelj cron izraza — besplatno

Gradite, validirajte i objašnjavajte cron izraze za zakazane zadatke. Živi opis na jednostavnom jeziku, pregled sljedećih 5 pokretanja i uobičajeni predlošci uzoraka.

Radi offline nakon učitavanja
minuta
(0-59)
sat
(0-23)
dan
(1-31)
mjesec
(1-12)
dan u tjednu
(0-7)

Jednostavnim riječima

U 09:00, Ponedjeljak do petka.

Uobičajeni obrasci

Kompatibilno sa standardnim Unix cron, GitHub Actions, Kubernetes CronJob i većinom scheduling sustava. Koristi * za 'svako', */5 za 'svakih 5', 1-5 za raspone, 1,15 za konkretne vrijednosti. Također prihvaća @hourly, @daily, @weekly, @monthly, @yearly, te imena poput MON-FRI ili JAN-DEC.

Uobičajene namjene

  • Gradnja cron-a za GitHub Actions radne tokoveGitHub Actions koristi cron sintaksu za zakazane radne tokove. Sastavite i provjerite vašu rasporedu ovdje.
  • Gradnja cron-a za Kubernetes CronJobsKubernetes CronJob resursi koriste standardnu cron sintaksu. Sastavite i objasnite izraz vizualno.
  • Gradnja cron stavki za Linux crontabSastavite izraze za tradicionalni Unix cron (cron, crontab -e) s povjerenjem.
  • Rasporedjivanje poslova održavanja baze podatakaZakazite sigurnosne kopije, vakuum ili analizirajte poslove s povjerenjem koristeći cron izraze.
  • Saznajte kako Cron izrazi funkcionirajuSvaka prilagodba pokazuje trenutni opis na engleskom jeziku i pregled sljedećih 5 pokretanja — najbolji način da naučite cron.

Kako funkcionira

Graditelj cron izraza radi u potpunosti u vašem pregledniku koristeći ručno napisani parser u lib/cron.ts — bez vanjske biblioteke, bez poziva poslužitelju. Provjerava izraz, sastavlja opis na jednostavnom engleskom koristeći ugrađene Intl.DateTimeFormat i Intl.ListFormat API-je preglednika za lokalno svjesne nazive dana i mjeseci, i izračunava sljedeća planirana vremena pokretanja hodanjem naprijed kroz vrijeme s logikom preskakanja polja umjesto grube sile za svaku minutu.

  1. 1
    Izraz raščlanjen polje po polje
    Parser dijeli izraz na pet (ili šest) polja odvojenih bjelinama i tokenizira svako za zareze, raspone (npr. 1-5), zapis koraka (npr. */15) i imenovane vrijednosti poput MON ili JAN. @makroi poput @daily proširuju se na svoje ekvivalente s pet polja prije početka raščlanjivanja. Nevaljane vrijednosti ili brojevi izvan raspona prikazuju se kao tipizirani ključevi grešaka koji se mapiraju na lokalizirane poruke.
  2. 2
    Sastavljen ljudski čitljiv opis
    describeCron() u lib/cron.ts gradi englesku (ili lokaliziranu) rečenicu ispitujući koja su polja zamjenski znakovi u odnosu na eksplicitne skupove. Nazivi dana i mjeseci razrješavaju se putem Intl.DateTimeFormat s aktivnom lokalizacijom, a stavke popisa se spajaju koristeći Intl.ListFormat tako da veznik ('i' naspram ',' naspram jezično specifičnog oblika) odgovara jeziku korisnika.
  3. 3
    Sljedeća vremena pokretanja izračunata s preskakanjem polja
    nextRuns() korača Date objektom naprijed od trenutačnog trenutka, ali preskače cijele mjesece, dane ili sate koji ne mogu odgovarati umjesto testiranja svake minute. To znači da nemoguć raspored poput 30. veljače brzo izlazi kroz provjeru petogodišnjeg horizonta umjesto petljanja 2,6 milijuna puta.
  4. 4
    Izraz se dijeli putem URL fragmenta
    Svaki izraz koji utipkate zapisuje se u URL fragment stranice kao #expr= (odgođeno 500 ms putem window.history.replaceState). Fragment se nikad ne šalje na poslužitelj; stranica se hidrira iz njega pri učitavanju, tako da dijeljenje ili spremanje URL-a u knjižne oznake obnavlja točan izraz bez ikakvog stanja poslužitelja.

Srodni alati

Često postavljana pitanja