Tóg léiriú cron

tógann sé léiriú cron ó réimsí radharcacha nó ó réamhshocrú (gach nóiméad, gach uair, gach lá, gach seachtain...)

Cén fáth tógálaí cron amhairc?

Tá cúig réimse i cron slonn agus fós ar cheann de na cinn is giniúna bugs i dtáirgeadh. Cé mhéad uair a scríobh forbróir 0 0 * * 1 ag smaoineamh “gach Dé Luain", gan cuimhneamh gur féidir go gciallódh 1 an Domhnach ag brath ar na feidhmiúcháin? Cé mhéad an bhfuil mearbhall orainn idir */15 agus 15? Freagraíonn an tógálaí cron é seo gá: crontab slonn a chumadh go amhairc, ó réamhshocruithe reatha nó de réimsí aonair, agus faigh an slonn deiridh réidh le greamú isteach i crontab Linux, a Kubernetes CronJob nó sceideal Gníomhaíochtaí GitHub.

Tá an uirlis a mhalairt lenár díchódóir cron: áit a nglacann an tiontaire slonn agus déanann sé an chéad fhorghníomhú eile, glacann an tógálaí roghanna daonna agus táirgeann sé an slonn cron comhfhreagrach.

Conas a oibríonn sé

Tairgeann an comhéadan grafach dhá mhodh comhlántacha comhdhéanamh:

  • Mód réamhshocraithe: roghnóir minicíochta (gach nóiméad, gach uair, gach lá, gach seachtain, gach mí, gach bliain, saincheaptha) a ghineann cron láithreach bailí.
  • Mód páirce: cúig réimse ineagarthóireachta (nóiméad, uair, lá na míosa, mí, lá de seachtain) ina gcuireann tú * isteach go saorálach, slánuimhir, raon 1-5, liosta 1,15,30 nó céim */15.

Déanann an tógálaí an slonn a nuashonrú i bhfíor-am agus taispeánann sé léamh gonta daonna (“gach lá ag 3 a.m.", "gach 15 nóiméad") a fheidhmíonn mar chosaint: mura luíonn an phianbhreith le do rún, is dócha go bhfuil an abairt mícheart.

Na cúig réimse cron, i dteanga shimplí

Tá cúig réimse deighilte ag spásanna i cron slonn:

nóiméad uair an chloig lá de mhí míosa lá na seachtaine
* * * * 
  • nóiméad (0 go 59);
  • uair (0 go 23);
  • lá den mhí (1 go 31);
  • (1 go 12 nó giorrúcháin Eanáir, Feabhra, etc.);
  • lá na seachtaine (0 go 7, 0 agus 7 an Domhnach ar an gcuid is mó feidhmiúcháin).

Glacann gach réimse le roinnt foirmeacha: * (gach luach), slánuimhir ar leith (5), liosta (1,3,5), raon (9-17), céim (*/15 gach 15 luach), nó teaglaim (0-30/5).

Cásanna úsáide tipiciúla

  • Forbróir a fhoghlaimíonn cron: léirshamhlú conas a idirghníomhaíonn gach réimse, gan riosca slonn bréagach i dtáirgeadh.
  • Sysadmin faoi dheifir: gin i gceann cúpla soicind sceideal le haghaidh cron Linux, a Kubernetes CronJob nó post Ansible gan an leathanach fear a athléamh.
  • Forbróir gan taithí POSIX: déan crontab slonn bailí do Sceidealóir Symfony, Sceidealóir Laravel nó nód-cron gan an chomhréir stairiúil a fhios.
  • DevOps faoi athbhreithniú: fréamhshamhail tapa slonn le moladh i dtarraingt iarratas, ansin bailíochtaigh é leis an díchódóir cron.
  • Ascnamh oidhreachta: athfhoirmigh slonn stairiúil cron ag baint úsáide as an tógálaí chun an tséimeantaic a chinntiú sula mbrútar áit eile é.

Réamhshocruithe Coiteann

Má roghnaítear réamhshocrú, forscríobhtar na réimsí aonair agus cruthaítear an slonn comhfhreagrach:

  • Gach nóiméad: * * * *. Seachain i dtáirgeadh mura gá ar leith.
  • Gach uair: 0 * * *. Ag tús gach uaire.
  • Gach lá: 0 0 * *. Ag meán oíche.
  • Gach seachtain: 0 0 * * 0. Gach Domhnach ag meán oíche.
  • Gach mí: 0 0 1 * . An 1ú lá den mhí ag meán oíche.
  • Gach bliain: 0 0 1 1 *. 1 Eanáir ag meán oíche.

Patrúin Coiteann ar Eolas

Sloinn Léamh daonna
0 0 * * * Gach lá ag meán oíche
*/15 * * * * Gach 15 nóiméad
0 9 * * 1-5 Gach lá oibre ag 9 a.m.
0 0 1 * * 1ú den mhí ag meán oíche
0 0 * * 0 Gach Domhnach ag meán oíche
*/5 9-17 * * 1-5 Gach 5 nóiméad le linn uaireanta gnó
0 3 * * * Gach lá ag 3 a.m.
30 2 1.15 * * An 1ú agus an 15ú den mhí ag 2:30 a.m.

Cum slonn saincheaptha

I gcás cásanna níos sainiúla, nochtar an draoi na cúig réimse le haghaidh iontrála saor in aisce. Roinnt samplaí úsáideach:

  • Gach lá ag 3 a.m.: nóiméad=0, uair=3, cinn eile Réimsí *.
  • Gach 15 nóiméad: nóiméad=*/15, réimsí eile *.
  • Luan go hAoine ag 9 a.m.: nóiméad=0, uair=9, day-of-the-week=1-5.
  • Gach 1ú agus 15ú den mhí ag meán lae: nóiméad=0, hour=12, day-of-month= 1.15.
  • Gach 5 nóiméad idir 9 am agus 5 pm.: nóiméad=*/5, time=9-17.

Conas an tógálaí cron a úsáid

  1. Roghnaigh réamhshocrú (gach nóiméad, gach uair, gach lá, gach seachtain, gach mí, gach bliain) a fhreagraíonn do bhunús do riachtanas.
  2. Mínigh más gá trí eagarthóireacht dhíreach a dhéanamh ar na cúig réimse (nóiméad, uair, lá na míosa, mí, lá na seachtaine).
  3. Léigh an abairt dhaonna a ghineann an uirlis chun an rún a dhearbhú.
  4. Cóipeáil an cron slonn a tháirgtear tríd an gcnaipe cóipe.
  5. Bailíochtaigh an sceideal lenár díchódóir cron a ríomhann an na chéad dátaí feidhmiúcháin iarbhír eile.
  6. Greamaigh an slonn isteach i do crontab Linux, do Kubernetes CronJob, do Sceidealóir Symfony nó do shreabhadh oibre GitHub Actions.

Traenálaí clasaiceach

  • Lá den mhí agus lá na seachtaine le chéile: mura * an dá cheann, tá difríocht idir an t-iompar idir feidhmiúcháin. Cuireann Linux/Vixie cron OR i bhfeidhm; an Uaireanta bíonn iompar difriúil ag leabharlanna nua-aimseartha. Chun a sheachaint.
  • Lá 1 = Dé Luain nó Dé Domhnaigh?: ag brath ar an tír agus ar an ngnáthamh. An chuid is mó cron Measann Unix Dé Domhnaigh=0 agus Dé Sathairn=6. Seiceáil do phleanálaí.
  • Crios ama: úsáideann cron Unix crios ama an fhreastalaí de réir réamhshocraithe. Tá an Is minic a ligeann sceidealóirí feidhmchlár (Sceidealóir Symfony, Grianchloch) duit crios ama tiomnaithe a shocrú.
  • Nóiméad ar iarraidh: ritheann * * * * an jab gach nóiméad, a is annamh a theastaíonn uainn. Smaoinigh ar thruicear sonrach (0) a shocrú le haghaidh tascanna in aghaidh na huaire.

Léitheoireacht dhaonna agus aschur

Chomh maith leis an cron abairt, cuireann an uirlis léamh gonta daonna ("go léir laethanta ag meán oíche", "gach 5 nóiméad"). Coimirce é seo: mura gcomhfhreagraíonn an abairt do intinn, is dócha go bhfuil an abairt mícheart. Le haghaidh cás casta, bain úsáid as ár díchódóir cron chun na chéad dátaí feidhmithe iarbhír eile a ríomh.

Ceisteanna coitianta

An féidir liom an slonn a chur in eagar de láimh tar éis dom an comhéadan a úsáid?

Tá. Ní mód eisiach é an tógálaí: fanann na cúig réimse in eagar ag am ar bith. tu is féidir tosú ó réamhshocrú, ansin coigeartaigh réimse de láimh chuncrontab a fháil léiriú saincheaptha. Déantar an léamh daonna a athríomh láithreach.

An dtacaíonn an uirlis le formáid Grianchloch 6-réimse (le soicindí)?

Ní hea: is é an fhormáid 5-réimse an caighdeán Unix agus an bunús is coiteann do phleanálaithe (Linux crontab, Kubernetes CronJob, GitHub Actions, GitLab CI, Sceidealóir Symfony, Sceidealóir Laravel). Glacann Grianchloch (Java) réimse breise le haghaidh soicind agus siombailí sonracha (?, L, W, #), ach fanann an riachtanas seo annamh.

Conas a bhainistítear an crios ama?

Táirgeann an tógálaí slonn neodrach cron: is é an t-inneall a chuireann an post i bhfeidhm crios ama. Ar crontab Linux, is é seo TZ an fhreastalaí. Ar Gníomhartha GitHub, is UTC é. Ar Le 1.27+, is féidir leat spec.timeZone a shocrú sa léiriú. Sceidealóir Symfony agus Nochtann Grianchloch crios ama tiomnaithe do gach tasc.

Conas is féidir liom mo slonn a bhailíochtú gan é a rith i dtáirgeadh?

Úsáid ár díchódóir cron. Ríomhann sé an chéad N eile ón nóiméad reatha, gan tosú ar aon phost. Is é seo an bealach is fearr chun a dhearbhú a Cuireann cron expression tinte ag an am sceidealaithe sula n-imscartar é.

Cad a bhaineann leis seo le Symfony Scheduler?

Glacann Symfony Scheduler le sloinn cron 5-réimse trí Sceideal::cron ('0 3 * *', ...) . Dá bhrí sin is féidir an slonn a tháirgeann an tógálaí a ghreamú mar atá. Mar an gcéanna do Laravel Sceidealóir (->cron('...')), nód-cron, Tine Hang agus Aershreabhadh.

Ar cheart an t-ordú a réamhshocrú i crontab an chórais?

Sea, i /etc/crontab tá úsáideoir uait (0 3 * * * www-data /usr/bin/php ...), agus fágann crontab -e in aghaidh an úsáideora ar lár é. Fanann an abairt féin comhionann.

Sampla iarratais

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

Scéimre ionchuir

Réimse Cineál Riachtanach Réamhshocrú
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 *

Críochphointí

  • GET https://cdrn.fr/api/v1/tools - liostaíonn na huirlisí go léir atá ar fáil
  • GET https://cdrn.fr/api/v1/tools/cron-builder - faigh scéimre na huirlise seo
  • POST https://cdrn.fr/api/v1/tools/cron-builder/execute - rith an uirlis seo le pálasta JSON