Siirry pääsisältöön

Cron-lausekkeen rakentaja ilmaiseksi

Rakenna, vahvista ja selitä cron-lausekkeita ajastetuille tehtäville. Live-selkokielinen kuvaus, seuraavien 5 suorituskertojen esikatselu ja yleiset kuvioerimääritetyt arvot.

Toimii offline-tilassa kerran ladattuna
minuutti
(0-59)
tunti
(0-23)
päivä
(1-31)
kuukausi
(1-12)
viikonpäivä
(0-7)

Selkokielellä

Klo 09.00, Maanantai–perjantai.

Yleisimmät mallit

Yhteensopiva tavallisen Unix cron:in, GitHub Actionsin, Kubernetes CronJobin ja useimpien ajastusjärjestelmien kanssa. Käytä * tarkoittamaan 'jokainen', */5 tarkoittamaan 'joka 5.', 1-5 väleille ja 1,15 yksittäisille arvoille. Hyväksyy myös @hourly, @daily, @weekly, @monthly, @yearly ja nimet kuten MON-FRI tai JAN-DEC.

Yleiset käyttötavat

  • Luo Cron GitHub Actions -työnkuluilleGitHub Actions käyttää cron-syntaksia ajoitetuille työnkuluille. Luo ja varmista aikataulusi täällä.
  • Luo Cron Kubernetes CronJobsilleKubernetes CronJob-resurssit käyttävät tavallista cron-syntaksia. Luo ja selitä lauseke visuaalisesti.
  • Luo Cron-merkinnät Linux crontabilleLuo lausekkeet perinteiselle Unix cronille (cron, crontab -e) luottavaisesti.
  • Ajoita tietokantahuollon työtehtäviäAjoita varmuuskopio-, tyhjenys- tai analyysityötehtäviä luottavaisesti cron-lausekkeilla.
  • Opi kuinka Cron-lausekkeet toimivatJokainen muutos näyttää välittömän selkeän englanninkielisen selityksen ja esikatselu seuraavista 5 ajoista — paras tapa oppia cron.

Miten se toimii

Cron-lausekkeen rakentaja toimii kokonaan selaimessasi käsin kirjoitetulla jäsentimellä lib/cron.ts-tiedostossa — ei ulkoista kirjastoa, ei palvelinkutsua. Se validoi lausekkeen, kokoaa selkokielisen kuvauksen selaimen sisäänrakennettuja Intl.DateTimeFormat- ja Intl.ListFormat-rajapintoja käyttäen paikallisasetusten mukaisille päivien ja kuukausien nimille, ja laskee seuraavat ajoitusajat kulkemalla eteenpäin ajassa kenttien ohitus­logiikalla sen sijaan, että kokeiltaisiin raa'alla voimalla jokaista minuuttia.

  1. 1
    Lauseke jäsennetään kenttä kerrallaan
    Jäsennin jakaa lausekkeen viiteen (tai kuuteen) välilyönnein erotettuun kenttään ja tokenisoi kunkin pilkkujen, alueiden (esim. 1-5), askelmerkinnän (esim. */15) ja nimettyjen arvojen (kuten MON tai JAN) varalta. @makrot kuten @daily laajennetaan viiden kentän vastineikseen ennen jäsennyksen alkua. Virheelliset arvot tai alueen ulkopuoliset luvut näkyvät tyypitettyinä virheavaimina, jotka kartoittuvat lokalisoiduiksi viesteiksi.
  2. 2
    Ihmisluettava kuvaus koottu
    describeCron() lib/cron.ts-tiedostossa rakentaa englanninkielisen (tai lokalisoidun) lauseen tarkastelemalla, mitkä kentät ovat jokerimerkkejä ja mitkä eksplisiittisiä joukkoja. Päivien ja kuukausien nimet ratkaistaan Intl.DateTimeFormat-rajapinnalla aktiivisella paikallisasetuksella, ja listakohteet yhdistetään Intl.ListFormat-rajapinnalla, jotta konjunktio ('ja' vs. ',' vs. paikallisasetuskohtainen muoto) vastaa käyttäjän kieltä.
  3. 3
    Seuraavat ajoitusajat lasketaan kenttien ohituksella
    nextRuns() kuljettaa Date-oliota eteenpäin nykyhetkestä, mutta ohittaa kokonaisia kuukausia, päiviä tai tunteja, jotka eivät voi täsmätä, sen sijaan että testaisi joka minuutin. Tämä tarkoittaa, että mahdoton aikataulu, kuten 30. helmikuuta, poistuu nopeasti viiden vuoden horisonttitarkistuksen kautta silmukoimatta 2,6 miljoonaa kertaa.
  4. 4
    Lauseke jaetaan URL-fragmentin kautta
    Mikä tahansa kirjoittamasi lauseke kirjoitetaan sivun URL-fragmenttiin muodossa #expr= (viivästettynä 500 ms window.history.replaceState-kutsulla). Fragmenttia ei koskaan lähetetä palvelimelle; sivu palautuu siitä ladattaessa, joten URL-osoitteen jakaminen tai kirjanmerkitseminen palauttaa täsmälleen saman lausekkeen ilman palvelintilaa.

Liittyvät työkalut

Usein kysytyt kysymykset