Besplatan Generator cron izraza

Kreirajte, provjerite i objasnite cron izraze za zakazane zadatke. Opis na razumljivom jeziku uživo, prikaz sljedećih 5 izvršavanja i predlošci uobičajenih obrazaca.

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

Jednostavnim riječima

U 9:00, Ponedjeljak do petak.

Uobičajeni obrasci

Kompatibilno sa standardnim Unix cronom, GitHub Actions, Kubernetes CronJob i većinom sistema za zakazivanje. Koristite * za 'svaki/svaka', */5 za 'svakih 5', 1-5 za raspone, 1,15 za konkretne vrijednosti. Takođe prihvata @hourly, @daily, @weekly, @monthly, @yearly, i nazive poput MON-FRI ili JAN-DEC.

Kako radi

Graditelj cron izraza radi u potpunosti u vašem pregledniku koristeći ručno napisan raščlanjivač u lib/cron.ts — bez vanjske biblioteke, bez poziva serveru. Validira izraz, sastavlja opis na jednostavnom jeziku koristeći ugrađene Intl.DateTimeFormat i Intl.ListFormat API-je preglednika za nazive dana i mjeseci svjesne jezičkog regiona, i izračunava sljedeća zakazana vremena izvršavanja prolazeći unaprijed kroz vrijeme sa logikom preskakanja polja umjesto grube provjere svake minute.

  1. 1
    Izraz se raščlanjuje polje-po-polje
    Raščlanjivač dijeli izraz na pet (ili šest) polja odvojenih razmakom i tokenizuje svako za zareze, raspone (npr. 1-5), notaciju koraka (npr. */15), i imenovane vrijednosti poput MON ili JAN. @makroi poput @daily se proširuju u svoje petopoljne ekvivalente prije početka raščlanjivanja. Nevalidne vrijednosti ili brojevi izvan raspona se prikazuju kao tipizirani ključevi grešaka koji se mapiraju u lokalizovane poruke.
  2. 2
    Sastavljen čitljiv opis
    describeCron() u lib/cron.ts gradi englesku (ili lokalizovanu) rečenicu ispitujući koja su polja džoker znakovi naspram eksplicitnih skupova. Nazivi dana i mjeseci se razrješavaju kroz Intl.DateTimeFormat sa aktivnim jezičkim regionom, a stavke liste se spajaju koristeći Intl.ListFormat tako da veznik ('i' naspram ',' naspram forme specifične za jezički region) odgovara jeziku korisnika.
  3. 3
    Sljedeća vremena izvršavanja izračunata sa preskakanjem polja
    nextRuns() pomjera Date objekat unaprijed od trenutnog momenta, ali preskače cijele mjesece, dane, ili sate koji se ne mogu podudariti umjesto da testira svaku minutu. Ovo znači da nemoguć raspored poput 30. februara brzo izlazi kroz provjeru horizonta od pet godina umjesto da petlja 2,6 miliona puta.
  4. 4
    Izraz se dijeli putem fragmenta URL-a
    Bilo koji izraz koji upišete se zapisuje u fragment URL-a stranice kao #expr= (odgođeno 500 ms putem window.history.replaceState). Fragment se nikada ne šalje serveru; stranica se hidrira iz njega pri učitavanju, tako da dijeljenje ili čuvanje URL-a u zabilješkama vraća tačan izraz bez ikakvog stanja na serveru.

Povezani alati

Često postavljana pitanja