Lumaktaw sa pangunahing nilalaman

Libreng Gumagawa ng Cron Expression

Bumuo, mag-validate, at magpaliwanag ng mga cron expression para sa mga naka-iskedyul na gawain. Live na paglalarawan sa simpleng Ingles, preview ng susunod na 5 na pagpapatakbo, at mga karaniwang pattern preset.

Gumagana offline kapag na-load na
minuto
(0-59)
oras
(0-23)
araw
(1-31)
buwan
(1-12)
araw ng linggo
(0-7)

Sa simpleng salita

Sa 9:00 AM, Lunes hanggang Biyernes.

Karaniwang pattern

Compatible sa standard Unix cron, GitHub Actions, Kubernetes CronJob, at karamihan sa mga scheduling system. Gamitin ang * para sa 'bawat', */5 para sa 'bawat 5', 1-5 para sa mga hanay, 1,15 para sa mga tiyak na halaga. Tumatanggap din ng @hourly, @daily, @weekly, @monthly, @yearly, at mga pangalan tulad ng MON-FRI o JAN-DEC.

Mga karaniwang gamit

  • Bumuo ng Cron para sa GitHub Actions WorkflowAng GitHub Actions ay gumagamit ng cron syntax para sa mga scheduled workflow. Bumuo at i-verify ang iyong schedule dito.
  • Bumuo ng Cron para sa Kubernetes CronJobAng Kubernetes CronJob resource ay gumagamit ng standard cron syntax. Bumuo at ipaliwanag ang expression nang visual.
  • Bumuo ng Cron Entry para sa Linux crontabBumuo ng mga expression para sa tradisyonal na Unix cron (cron, crontab -e) nang may kumpiyansa.
  • Mag-schedule ng Database Maintenance JobI-schedule ang backup, vacuum, o analyze job nang may kumpiyansa gamit ang cron expression.
  • Matuto Kung Paano Gumagana ang Cron ExpressionBawat pagbabago ay nagpapakita ng agad na paliwanag sa English at pag-preview ng susunod na 5 run β€” pinakamahusay na paraan upang matuto ng cron.

Paano ito Gumagana

Buong tumatakbo sa iyong browser ang cron expression builder gamit ang hand-written na parser sa lib/cron.ts β€” walang panlabas na library, walang server call. Vina-validate nito ang expression, bumubuo ng paglalarawan sa simpleng English gamit ang built-in na Intl.DateTimeFormat at Intl.ListFormat API ng browser para sa mga pangalan ng araw at buwan ayon sa locale, at kinakalkula ang mga susunod na nakatakdang run sa pag-usad sa oras gamit ang field-skipping logic sa halip na i-brute-force ang bawat minuto.

  1. 1
    Pina-parse ang expression bawat field
    Hinahati ng parser ang expression sa lima (o anim) na field na pinaghihiwalay ng whitespace at tino-tokenize ang bawat isa para sa mga kuwit, range (hal. 1-5), step notation (hal. */15), at mga pinangalanang halaga gaya ng MON o JAN. Pinalalawak ang mga @macro gaya ng @daily sa katumbas nilang five-field bago magsimula ang pag-parse. Lumalabas ang mga di-wastong halaga o numerong wala sa saklaw bilang typed error key na naka-map sa mga naka-localize na mensahe.
  2. 2
    Binubuo ang paglalarawang madaling basahin
    Binubuo ng describeCron() sa lib/cron.ts ang pangungusap sa English (o naka-localize) sa pagsuri kung aling mga field ang wildcard at alin ang tahasang set. Nire-resolve ang mga pangalan ng araw at buwan sa Intl.DateTimeFormat gamit ang aktibong locale, at pinagdudugtong ang mga item sa listahan gamit ang Intl.ListFormat kaya tugma sa wika ng user ang pangatnig ('at' vs ',' vs anyong partikular sa locale).
  3. 3
    Kinakalkula ang mga susunod na run gamit ang field skipping
    Inuusad ng nextRuns() ang isang Date object mula sa kasalukuyang sandali, pero nilalaktawan ang buong buwan, araw, o oras na hindi puwedeng tumugma sa halip na subukan ang bawat minuto. Ibig sabihin, ang imposibleng iskedyul gaya ng Peb 30 ay mabilis na lumalabas sa pamamagitan ng limang-taong horizon check sa halip na umikot nang 2.6 milyong beses.
  4. 4
    Ibinabahagi ang expression sa pamamagitan ng URL fragment
    Isinusulat ang anumang expression na tina-type mo sa URL fragment ng pahina bilang #expr= (debounced nang 500 ms sa pamamagitan ng window.history.replaceState). Hindi kailanman ipinapadala sa server ang fragment; nilo-load ito ng pahina pag-load, kaya ang pagbabahagi o pag-bookmark ng URL ay nagbabalik ng eksaktong expression nang walang anumang server state.

Mga Kaugnay na Tool

Mga Madalas na Itanong