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...)

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

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 *

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