Izgraditi cron izraz
- Nadzorna ploča
- Dokumentacija
- API
Zašto vizualni cron builder?
Cron izraz sadrži pet polja, a ipak ostaje jedan od onih koji najviše generiraju
greške u proizvodnji. Koliko je puta programer napisao 0 0 * * 1 misleći “svaki
Ponedjeljak", a da se ne sjeti da 1 može značiti nedjelju, ovisno o implementacijama? Koliko
jesmo li pobrkali */15 i 15? Cron builder odgovara na ovo
potreba: vizualno sastavite crontab izraz, od trenutnih unaprijed postavljenih ili
pojedinačnih polja i dobiti konačni izraz spreman za lijepljenje u Linux crontab, Kubernetes
CronJob ili GitHub Actions raspored.
Alat je suprotan od našeg cron dekodera: gdje konverter vodi izraz i provodi sljedeća izvršenja, graditelj uzima ljudske izbore i proizvodi odgovarajući cron izraz.
Kako radi
Grafičko sučelje nudi dva komplementarna načina kompozicije:
- Unaprijed postavljen način: birač frekvencije (svake minute, svakog sata, svakog dana, svaki tjedan, svaki mjesec, svake godine, prilagođeno) koji odmah generira cron izraz valjano.
- Način polja: pet polja koja se mogu uređivati (minuta, sat, dan u mjesecu, mjesec, dan
tjedan) gdje slobodno upisujete
*, cijeli broj, raspon1-5, popis1,15,30ili korak*/15.
Graditelj ažurira izraz u stvarnom vremenu i prikazuje sažeto ljudsko čitanje ("svaki dan u 3 ujutro", "svakih 15 minuta") koji služi kao zaštita: ako rečenica ne odgovara vašoj namjeri, izraz je vjerojatno pogrešan.
Pet cron polja, jednostavnim jezikom
Standardni cron izraz sadrži pet polja odvojenih razmacima:
minuta sat dan-u-mjesecu mjesec dan-u tjednu
* * * * *
- minuta (0 do 59);
- sat (0 do 23);
- dan u mjesecu (1 do 31);
- mjesec (1 do 12 ili kratice siječanj, veljača itd.);
- dan u tjednu (od 0 do 7, 0 i 7 su uglavnom nedjelja implementacije).
Svako polje prihvaća nekoliko oblika: * (sve vrijednosti), određeni cijeli broj
(5), popis (1,3,5), raspon (9-17), korak (*/15
svakih 15 vrijednosti), ili kombinacija (0-30/5).
Tipični slučajevi upotrebe
- Programer koji uči cron: vizualizirajte interakciju svakog polja bez rizika lažni izraz u proizvodnji.
- Sysadmin u žurbi: generirajte u nekoliko sekundi raspored za Linux cron, Kubernetes CronJob ili Ansible posao bez ponovnog čitanja stranice priručnika.
- Programer bez iskustva s POSIX-om: izradite crontab izraz vrijedi za Symfony Scheduler, Laravel Scheduler ili node-cron bez poznavanja povijesne sintakse.
- DevOps u pregledu: brzo izradite prototip izraza za predlaganje u povlačenju zahtjev, zatim ga potvrdite cron dekoderom.
- Naslijeđena migracija: preformulirajte povijesni cron izraz pomoću alata za izgradnju kako bi se osigurala semantika prije nego što se gurne negdje drugdje.
Uobičajene unaprijed postavljene postavke
Odabir unaprijed postavljene postavke prepisuje pojedinačna polja i proizvodi odgovarajući izraz:
- Svake minute:
* * * * *. Izbjegavati u proizvodnji osim ako je potrebno posebno. - Svakog sata:
0 * * * *. Na početku svakog sata. - Svaki dan:
0 0 * * *. U ponoć. - Svaki tjedan:
0 0 * * 0. Svake nedjelje u ponoć. - Svaki mjesec:
0 0 1 * *. 1. u mjesecu u ponoć. - Svake godine:
0 0 1 1 *. 1. siječnja u ponoć.
Uobičajeni obrasci koje treba znati
| Izraz | Ljudsko čitanje |
|---|---|
0 0 * * * |
Svaki dan u ponoć |
*/15 * * * * |
Svakih 15 minuta |
0 9 * * 1-5 |
Svaki radni dan u 9 sati |
0 0 1 * * |
1. u mjesecu u ponoć |
0 0 * * 0 |
Svake nedjelje u ponoć |
*/5 9-17 * * 1-5 |
Svakih 5 minuta tijekom radnog vremena |
0 3 * * * |
Svaki dan u 3 ujutro |
30 2 1,15 * * |
1. i 15. u mjesecu u 2:30 ujutro |
Sastavite prilagođeni izraz
Za specifične slučajeve, čarobnjak izlaže pet polja za slobodan unos. Neki primjeri korisno:
- Svaki dan u 3 ujutro: minuta=
0, sat=3, ostalo*polja. - Svakih 15 minuta: minute=
*/15, ostala polja*. - Od ponedjeljka do petka u 9 sati: minute=
0, sat=9, day-of-the-week=1-5. - Svakog 1. i 15. u mjesecu u podne: minuta=
0, sat=12, dan-mjeseca=1.15. - Svakih 5 minuta između 9 i 17 sati: minute=
*/5, vrijeme=9-17.
Kako koristiti cron builder
- Odaberite unaprijed (svake minute, svakog sata, svakog dana, svakog tjedna, svakog mjeseca, svake godine) koji odgovara osnovici vaše potrebe.
- Pročistite ako je potrebno izravnim uređivanjem pet polja (minuta, sat, dan u mjesecu, mjesec, dan tjedna).
- Pročitajte ljudsku rečenicu koju je generirao alat kako biste potvrdili namjeru.
- Kopirajte cron izraz proizveden pomoću gumba za kopiranje.
- Potvrdite raspored s našim cron dekoderom koji izračunava sljedeći stvarni datumi izvršenja.
- Zalijepite izraz u svoj Linux crontab, svoj Kubernetes CronJob, svoj Symfony Scheduler ili vaš tijek rada GitHub Actions.
Klasične zamke
- Kombinacija dana u mjesecu i dana u tjednu: ako oba nisu
*, ponašanje se razlikuje između implementacija. Linux/Vixie cron primjenjuje OR; the Moderne knjižnice ponekad se ponašaju drugačije. Izbjeći. - 1. dan = ponedjeljak ili nedjelja?: ovisno o zemlji i konvenciji. Većina cron Unix smatra nedjelju=0 i subotu=6. Provjerite svoj planer.
- Vremenska zona: Unix cron prema zadanim postavkama koristi vremensku zonu poslužitelja. The Raspoređivači aplikacija (Symfony Scheduler, Quartz) često vam omogućuju postavljanje posebne vremenske zone.
- Minuta koja nedostaje:
* * * * *izvršava posao svake minute, što rijetko je ono što želimo. Razmotrite postavljanje određenog okidača (0) za zadaci po satu.
Ljudsko čitanje i izlaz
Uz cron izraz, alat nudi sažeto ljudsko čitanje (“sve dana u ponoć", "svakih 5 minuta"). Ovo je zaštita: ako kazna ne odgovara vašoj namjera, izraz je vjerojatno pogrešan. Za složen slučaj upotrijebite naš cron dekoder za izračun sljedećih stvarnih datuma izvršenja.
Često postavljana pitanja
Mogu li ručno urediti izraz nakon korištenja sučelja?
da Graditelj nije isključivi način: pet polja se mogu uređivati u bilo kojem trenutku. ti može započeti s unaprijed postavljenim postavkama, zatim ručno podesiti polje kako bi se dobiocrontab izričaj po mjeri. Ljudsko očitanje se odmah ponovno izračunava.
Podržava li alat Quartz format sa 6 polja (sa sekundama)?
Ne: format od 5 polja je Unix standard i osnova zajednička većini planera
(Linux crontab, Kubernetes CronJob, GitHub Actions, GitLab CI, Symfony Scheduler, Laravel Scheduler).
Quartz (Java) prihvaća dodatno polje za sekunde i određene simbole
(?, L, W, #), ali ova potreba ostaje rijetka.
Kako se upravlja vremenskom zonom?
Graditelj proizvodi neutralan cron izraz: motor je taj koji izvršava posao koji primjenjuje svoje
vremenska zona. Na Linux crontabu, ovo je TZ poslužitelja. Na GitHub Actions je UTC. Uključeno
Kubernetes 1.27+, možete postaviti spec.timeZone u manifestu. Symfony Planer i
Quartz izlaže posebnu vremensku zonu po zadatku.
Kako da potvrdim svoj izraz bez pokretanja u produkciji?
Koristite naš cron dekoder. Izračunava sljedećih N pogubljenja od trenutnog trenutka, bez pokretanja bilo kakvog posla. Ovo je najbolji način da potvrdite da a cron izraz aktivira se u zakazano vrijeme prije nego što se postavi.
Kakve to veze ima sa Symfony Scheduler?
Symfony Scheduler prihvaća cron izraze s 5 polja putem Schedule::cron('0 3 * * *', ...)
. Izraz koji je proizveo graditelj stoga se može zalijepiti kakav jest. Isto za Laravel
Planer (->cron('...')), node-cron, Hangfire i Airflow.
Treba li naredba imati prefiks u crontabu sustava?
Da, u /etc/crontab trebate korisnika (0 3 * * * www-data /usr/bin/php
...), dok ga crontab -e po korisniku izostavlja. Sam izraz ostaje
istovjetan.
Primjer zahtjeva
curl -X POST https://cdrn.fr/api/v1/tools/cron-builder/execute \
-H "Content-Type: application/json" \
-d '{"preset":"none","minute":"*","hour":"*","day_of_month":"*","month":"*","day_of_week":"*"}'
Ulazna shema
| Polje | Tip | Obavezno | Zadano |
|---|---|---|---|
preset |
choice (none, every_minute, hourly, daily, weekly, monthly, yearly) | – | none |
minute |
string | – | * |
hour |
string | – | * |
day_of_month |
string | – | * |
month |
string | – | * |
day_of_week |
string | – | * |
Krajnje točke
GET https://cdrn.fr/api/v1/tools- ispisuje sve dostupne alateGET https://cdrn.fr/api/v1/tools/cron-builder- dohvaća shemu ovog alataPOST https://cdrn.fr/api/v1/tools/cron-builder/execute- izvršava ovaj alat s JSON payloadom