Pređi na glavni sadržaj
LibraTool logoLibraTool

Graditelj cron izraza — besplatno

Gradite, validujte i objašnjavajte cron izraze za zakazane zadatke. Opis na razumljivom jeziku uživo, pregled sledećih 5 pokretanja i presetovi uobičajenih obrazaca.

Radi van mreže kada se učita
minut
(0-59)
sat
(0-23)
dan
(1-31)
mesec
(1-12)
dan u nedelji
(0-7)

Običnim rečima

U 09:00, Ponedeljak do petka.

Uobičajeni obrasci

Kompatibilno sa standardnim Unix cron, GitHub Actions, Kubernetes CronJob i većinom scheduling sistema. Koristi * za 'svako', */5 za 'svakih 5', 1-5 za opsege, 1,15 za konkretne vrednosti. Takođe prihvata @hourly, @daily, @weekly, @monthly, @yearly, i nazive kao MON-FRI ili JAN-DEC.

Uobičajene upotrebe

  • Izgradnja Cron za GitHub Actions Workflow-eGitHub Actions koristi cron sintaksu za raspoređene workflow-e. Napravite i proverite vaš raspored ovde.
  • Izgradnja Cron za Kubernetes CronJob-oveKubernetes CronJob resursi koriste standardnu cron sintaksu. Napravite i objasnite izraz vizuelno.
  • Izgradnja Cron zapisa za Linux crontabNapravite izraze za tradicionalni Unix cron (cron, crontab -e) sa samopouzdanjem.
  • Raspored Job-ova održavanja bazeRasporedite rezervne kopije, vakuum ili analizirajte job-ove sa samopouzdanjem koristeći cron izraze.
  • Učite kako funkcionišu Cron izraziSvaka promena pokazuje odmaha objašnjenje na engleskom jeziku i pregled sledećih 5 pokretanja — najbolji način da naučite cron.

Kako funkcioniše

Kreator cron izraza se u potpunosti izvršava u vašem pregledaču koristeći ručno napisan parser u lib/cron.ts — bez spoljne biblioteke, bez poziva serveru. Proverava izraz, sastavlja opis na jednostavnom jeziku koristeći ugrađene Intl.DateTimeFormat i Intl.ListFormat API-je pregledača za nazive dana i meseci svesne jezika, i izračunava sledeća zakazana vremena pokretanja koračajući unapred kroz vreme sa logikom preskakanja polja umesto grubog isprobavanja svakog minuta.

  1. 1
    Izraz parsiran polje po polje
    Parser deli izraz na pet (ili šest) polja razdvojenih razmacima i tokenizuje svako za zareze, opsege (npr. 1-5), notaciju koraka (npr. */15), i imenovane vrednosti poput MON ili JAN. @makroi poput @daily se šire u svoje ekvivalente sa pet polja pre nego što parsiranje počne. Nevalidne vrednosti ili brojevi van opsega prikazuju se kao tipizovani ključevi grešaka koji se mapiraju na lokalizovane poruke.
  2. 2
    Sastavljen opis čitljiv ljudima
    describeCron() u lib/cron.ts gradi englesku (ili lokalizovanu) rečenicu ispitujući koja polja su džoker znaci naspram eksplicitnih skupova. Nazivi dana i meseci se razrešavaju preko Intl.DateTimeFormat sa aktivnim jezikom, a stavke liste se spajaju koristeći Intl.ListFormat tako da veznik ('i' naspram ',' naspram oblika specifičnog za jezik) odgovara jeziku korisnika.
  3. 3
    Sledeća vremena pokretanja izračunata sa preskakanjem polja
    nextRuns() korača Date objekat unapred od trenutnog momenta, ali preskače cele mesece, dane, ili sate koji ne mogu odgovarati umesto da testira svaki minut. Ovo znači da nemoguć raspored poput 30. februara brzo izlazi kroz proveru horizonta od pet godina umesto da petlja 2,6 miliona puta.
  4. 4
    Izraz podeljen preko URL fragmenta
    Bilo koji izraz koji otkucate se upisuje u URL fragment stranice kao #expr= (odloženo 500 ms preko window.history.replaceState). Fragment se nikada ne šalje serveru; stranica se hidrira iz njega pri učitavanju, tako da deljenje ili obeležavanje URL-a vraća tačan izraz bez ikakvog stanja na serveru.

Slične alatke

Česta pitanja