Ibni espressjoni cron

jibni espressjoni cron minn oqsma viżwali jew minn preset (kull minuta, ta' kull siegħa, ta' kuljum, ta' kull ġimgħa...)
kmand x'jitħaddem, biex tikseb linja crontab lesta

Għaliex bennej cron viżwali?

Aespressjoni cronfiha ħames oqsma u għadha waħda mill-aktar li jiġġenera bugs fil-produzzjoni. Kemm-il darba żviluppatur kiteb 0 0 * * 1 jaħseb “kull It-Tnejn", mingħajr ma niftakru li 1 jista' jfisser il-Ħadd skond l-implimentazzjonijiet? Kemm żmien konna konfuż */15 u 15? Il-bennej tal-cronjwieġeb dan bżonn: viżwalment jikkomponuespressjoni crontab, minn presets kurrenti jew ta 'oqsma individwali, u ħu l-espressjoni finali lesta biex tippejstja f'crontab Linux, Kubernetes CronJob jew skeda tal-Azzjonijiet GitHub.

L-għodda hija l-oppost tad-decoder cron tagħna: fejn il-konvertitur jieħu espressjoni u jwettaq l-eżekuzzjonijiet li jmiss, il-bennej jieħu għażliet umani u jipproduċi l-espressjoni cron korrispondenti.

Kif taħdem

L-interface grafika toffri żewġ modi ta 'kompożizzjoni komplementari:

  • Modalità issettjata minn qabel: selettur tal-frekwenza (kull minuta, kull siegħa, kull jum, kull ġimgħa, kull xahar, kull sena, drawwa) li immedjatament jiġġeneraespressjoni cron validu.
  • Modalità Field: ħames oqsma editjabbli (minuta, siegħa, jum tax-xahar, xahar, jum ta' ġimgħa) fejn iddaħħal liberament *, numru sħiħ, firxa 1-5, lista 1,15,30 jew pass */15.

Il-bennej jaġġorna l-espressjoni f'ħin reali u juri qari uman konċiż (“kuljum fit-3 a.m.", "kull 15-il minuta") li jservi bħala salvagwardja: jekk is-sentenza ma taqbilx mal-intenzjoni tiegħek, l-espressjoni probabbilment hija żbaljata.

Il-ħames oqsma cron, b'lingwaġġ sempliċi

Espressjoni cronistandard fiha ħames oqsma separati bi spazji:

minuta siegħa jum tax-xahar xahar jum tal-ġimgħa
* * * * *
  • minuta (0 sa 59);
  • siegħa (0 sa 23);
  • jum tax-xahar (1 sa 31);
  • xahar (1 sa 12 jew abbrevjazzjonijiet Jan, Frar, eċċ.);
  • jum tal-ġimgħa (0 sa 7, 0 u 7 it-tnejn huma l-Ħadd fil-biċċa l-kbira implimentazzjonijiet).

Kull qasam jaċċetta diversi forom: * (il-valuri kollha), numru sħiħ speċifiku (5), lista (1,3,5), medda (9-17), pass (*/15 kull 15-il valur), jew kombinazzjoni (0-30/5).

Każijiet ta' użu tipiċi

  • Żviluppatur li jitgħallem cron: Ħares kif kull qasam jinteraġixxi, mingħajr ma jirriskja espressjoni falza fil-produzzjoni.
  • Sysadmin bil-għaġla: iġġenera fi ftit sekondi skeda għal Linux cron, a Kubernetes CronJob jew xogħol Ansible mingħajr ma taqra mill-ġdid il-paġna man.
  • Żviluppatur mingħajr esperjenza POSIX: tipproduċiespressjoni crontab validu għal Symfony Scheduler, Laravel Scheduler jew node-cron mingħajr ma tkun taf is-sintassi storika.
  • DevOps f'reviżjoni: malajr prototip ta' espressjoni li tipproponi f'ġibda talba, imbagħad ivvalidaha bid-decoder cron.
  • Migrazzjoni tal-wirt: ifformula mill-ġdid espressjoni cron storika billi tuża l-bennej biex tiżgura s-semantika qabel ma timbotta x'imkien ieħor.

Presets Komuni

L-għażla ta' ssettjar minn qabel tikteb fuq il-kampijiet individwali u tipproduċi l-espressjoni korrispondenti:

  • Kull minuta: * * * * *. Evita fil-produzzjoni sakemm ma jkunx meħtieġ partikolari.
  • Kull siegħa: 0 * * * *. Fil-bidu ta’ kull siegħa.
  • Kuljum: 0 0 * * *. F'nofsillejl.
  • Kull ġimgħa: 0 0 * * 0. Kull nhar ta’ Ħadd f’nofsillejl.
  • Kull xahar: 0 0 1 * *. L-1 tax-xahar f’nofsillejl.
  • Kull sena: 0 0 1 1 *. 1 ta’ Jannar f’nofsillejl.

Mudelli Komuni li tkun taf

Ikkomponi espressjoni tad-dwana

Għal każijiet aktar speċifiċi, il-wizard jesponi l-ħames oqsma għal dħul b'xejn. Xi eżempji utli:

  • Kuljum fit-3 a.m.: minuta=0, siegħa=3, oħrajn oqsma *.
  • Kull 15-il minuta: minuta=*/15, oqsma oħra *.
  • mit-Tnejn sal-Ġimgħa fid-9 a.m.: minuta=0, siegħa=9, jum tal-ġimgħa=1-5.
  • Kull 1 u 15 tax-xahar f'nofsinhar: minuta=0, siegħa=12, jum tax-xahar=1.15.
  • Kull 5 minuti bejn id-9 a.m. u l-5 p.m.: minuta=*/5, ħin=9-17.

Kif tuża l-bennej cron

  1. Agħżel issettjat minn qabel (kull minuta, kull siegħa, kull jum, kull ġimgħa, kull xahar, kull sena) li jikkorrispondi mal-bażi tal-ħtieġa tiegħek.
  2. Irfina jekk meħtieġ billi teditja direttament il-ħames oqsma (minuta, siegħa, jum tax-xahar, xahar, jum tal-ġimgħa).
  3. Aqra s-sentenza umana ġġenerata mill-għodda biex tikkonferma l-intenzjoni.
  4. Ikkopja l-espressjoni cron prodotta permezz tal-buttuna tal-kopja.
  5. Ivvalida l-iskeda bid-decoder cron tagħna li tikkalkula l- id-dati ta' eżekuzzjoni attwali li jmiss.
  6. Waħħal l-espressjoni fil-crontab tal-Linux tiegħek, il-Kubernetes CronJob tiegħek, is-Symfony Scheduler tiegħek jew il-fluss tax-xogħol tal-Azzjonijiet GitHub tiegħek.

Nases klassiċi

  • Jum tax-xahar u jum tal-ġimgħa flimkien: jekk it-tnejn mhumiex *, l-imġiba tvarja bejn l-implimentazzjonijiet. Linux/Vixie cron japplika JEW; il Il-libreriji moderni kultant iġibu ruħhom b'mod differenti. Biex tevita.
  • Jum 1 = it-Tnejn jew il-Ħadd?: skond il-pajjiż u l-konvenzjoni. Ħafna cron Unix iqis il-Ħadd=0 u s-Sibt=6. Iċċekkja l-pjanifikatur tiegħek.
  • Żona tal-ħin: cron Unix juża ż-żona tal-ħin tas-server awtomatikament. Il- L-iskedaturi tal-applikazzjoni (Symfony Scheduler, Quartz) spiss jippermettulek li tissettja żona tal-ħin iddedikata.
  • Minuta nieqsa: * * * * * iħaddem ix-xogħol kull minuta, li rari huwa dak li rridu. Ikkunsidra li tistabbilixxi trigger speċifiku (0) għal kompiti fis-siegħa.

Qari u output tal-bniedem

Minbarra l-espressjoni cron, l-għodda toffri qari uman konċiż (“kollha jiem f'nofsillejl", "kull 5 minuti"). Din hija salvagwardja: jekk is-sentenza ma tikkorrispondix għal tiegħek intenzjoni, l-espressjoni hija probabbilment żbaljata. Għal każ kumpless, imbagħad uża tagħna cron decoder biex tikkalkula d-dati attwali ta’ eżekuzzjoni li jmiss.

Mistoqsijiet frekwenti

Nista' manwalment neditja l-espressjoni wara li nuża l-interface?

Iva. Il-bennej mhuwiex mod esklussiv: il-ħames oqsma jibqgħu editjabbli fi kwalunkwe ħin. Inti jistgħu jibdew minn preset, imbagħad aġġusta qasam bl-idejn biex tikseb acrontab espressjoni magħmula apposta. Il-qari uman jiġi kkalkulat mill-ġdid immedjatament.

L-għodda tappoġġja l-format tal-kwarz b'6-field (b'sekondi)?

Le: il-format 5-field huwa l-istandard Unix u l-bażi komuni għall-biċċa l-kbira tal-pjanifikaturi (Linux crontab, Kubernetes CronJob, GitHub Actions, GitLab CI, Symfony Scheduler, Laravel Scheduler). Kwarz (Java) jaċċetta qasam żejjed għal sekondi u simboli speċifiċi (?, L, W, #), iżda din il-ħtieġa tibqa' rari.

Kif hija ġestita ż-żona tal-ħin?

Il-bennej jipproduċi espressjoni cron newtrali: hija l-magna li tesegwixxi l-biċċa xogħol li tapplika tagħha żona tal-ħin. Fuq crontab Linux, dan huwa TZ tas-server. Fuq GitHub Actions, huwa UTC. Fuq Kubernetes 1.27+, tista' tissettja spec.timeZone fil-manifest. Symfony Scheduler u Il-kwarz jesponi żona tal-ħin iddedikata għal kull kompitu.

Kif nivvalida l-espressjoni tiegħi mingħajr ma nħaddem fil-produzzjoni?

Uża decoder cron tagħna. Jikkalkula l-eżekuzzjonijiet N li jmiss mill-mument attwali, mingħajr ma beda xi xogħol. Dan huwa l-aħjar mod biex tikkonferma li a espressjoni cron tispara fil-ħin skedat qabel ma tiġi skjerata.

Dan x'għandu x'jaqsam ma' Symfony Scheduler?

Symfony Scheduler jaċċetta espressjonijiet cron ta' 5 oqsma permezz ta' Schedule::cron('0 3 * * *', ...) . L-espressjoni prodotta mill-bennej għalhekk tista 'tiġi pasted kif inhi. L-istess għal Laravel Scheduler (->cron('...')), node-cron, Hangfire u Airflow.

Il-kmand għandu jkun prefiss fis-sistema crontab?

Iva, f'/etc/crontab għandek bżonn utent (0 3 * * * www-data /usr/bin/php ...), filwaqt li crontab -e għal kull utent iħalli barra. L-espressjoni nnifisha tibqa’ identiċi.

Eżempju ta' talba

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":"*","command":"..."}'

Skema ta' input

Espressjoni Qari tal-bniedem
0 0 * * * Kuljum f'nofsillejl
*/15 * * * * Kull 15-il minuta
0 9 * * 1-5 Kull jum tax-xogħol fid-9 a.m.
0 0 1 * * l-ewwel tax-xahar f'nofsillejl
0 0 * * 0 Kull nhar ta' Ħadd f'nofsillejl
*/5 9-17 * * 1-5 Kull 5 minuti matul il-ħinijiet tax-xogħol
0 3 * * * Kuljum fit-3 a.m.
30 2 1.15 * * L-1 u l-15 tax-xahar fis-2:30 a.m.
Kamp Tip Meħtieġ Default
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 *
command string

Endpoints

  • GET https://cdrn.fr/api/v1/tools - telenka l-għodod kollha disponibbli
  • GET https://cdrn.fr/api/v1/tools/cron-builder - tikseb l-iskema ta' din l-għodda
  • POST https://cdrn.fr/api/v1/tools/cron-builder/execute - teżegwixxi din l-għodda b'payload JSON