Kigeuzi cha Bure

Usemi wa Cron Jenereta

Tengeneza, eleza, na uthibitishe misemo ya cron papo hapo kwenye kivinjari chako. Kijenzi kinachoonekana na kichanganuzi cha kujieleza - bila malipo, kibinafsi, na upande wa mteja.

Usemi wa Cron
0 */6 * * *
Maelezo yanayoweza kusomeka na Binadamu
Every minute
Mikimbio 5 Inayofuata Iliyoratibiwa
Calculating...

Kuhusu zana hii

Semi za Cron ni sehemu tano (au sita, kulingana na mfumo) zilizotenganishwa na nafasi zinazoelezea ratiba: dakika, saa, siku ya mwezi, mwezi, na siku ya wiki. Kila sehemu inakubali nambari, safu, orodha, nyongeza na kadi-mwitu. Cron imekuwa muundo wa kuratibu wa Unix tangu mwishoni mwa miaka ya 1970 na sasa inatumika zaidi ya Unix - na Kubernetes CronJobs, GitHub Actions, sheria za AWS EventBridge, kazi za Jenkins, na karibu kila mfumo mwingine wa kuratibu katika uzalishaji.

Kusoma na kuandika maneno ya cron kwa mkono kunakabiliwa na makosa. Maeneo ni ya kawaida, mwingiliano wa siku ya mwezi na siku ya wiki sio dhahiri (thamani katika sehemu yoyote huchochea kazi, sio zote mbili), na makosa huzalisha kimya ratiba ambazo zinaonekana kuwa sawa lakini moto wakati usiofaa. Jenereta inayotafsiri ratiba za Kiingereza-Kiingereza wazi katika sintaksia sahihi ya cron huepuka makosa haya.

Zana hii inatoa maelekezo mawili: kujenga usemi wa cron kutoka kwa fomu ya kirafiki (kila Jumatatu saa 9 AM, kila dakika 5 wakati wa saa za kazi), na kuelezea usemi uliopo wa cron kwa maneno ya kibinadamu. Zote mbili zinaendeshwa kwenye kivinjari chako bila mwingiliano wowote wa seva.

Kwa nini Utumie Jenereta ya Cron

Sintaksia ya Cron ni mnene na haisamehe. Makosa ya kawaida ni pamoja na kuchanganya nambari za siku ya wiki (Jumapili ni 0 au 7 kulingana na mfumo), kusahau matumizi ya siku ya mwezi na siku ya juma AU semantiki, na kutoelewa sintaksia ya nyongeza (*/5 inamaanisha kila 5 kuanzia 0). Jenereta hushika hizi kwa ujenzi - misemo inayotolewa inalingana na ulichoelezea katika fomu.

Kusoma misemo iliyopo ni ngumu vile vile. Ratiba kama 0 9 * * 1-5 husomwa kama kila siku ya juma saa 9 AM mara tu unapojua sintaksia, lakini mtu yeyote asiyefahamu cron lazima atafute kila sehemu. Kufafanua usemi kwa maneno ya kibinadamu ni haraka kuliko kujifunza sintaksia ya mwingiliano wa mara moja.

Jinsi ya kutumia

Chagua muundo wa ratiba, pata usemi wa cron.

  1. Chagua hali ya kizazi: Unda usemi wa cron kutoka kwa pembejeo za fomu (marudio, wakati, siku), au elezea usemi uliopo kwa maneno ya kibinadamu.
  2. Sanidi ratiba: Chagua mara kwa mara (kila dakika, kila saa, kila siku, kila wiki, kila mwezi, desturi). Bainisha nyakati, siku na vipindi inavyohitajika. Fomu huweka vikwazo kwa michanganyiko halali.
  3. Tengeneza au ueleze: Kizazi hutoa syntax ya kawaida ya cron (sehemu 5). Ufafanuzi huvunja kila sehemu na kutoa muhtasari unaoweza kusomeka na binadamu.
  4. Tumia katika mpangilio wako: Bandika usemi ulioundwa kwenye maelezo ya Kubernetes CronJob, ratiba ya Vitendo vya GitHub, AWS EventBridge, au kipanga ratiba cha jukwaa lako.

Kesi za Matumizi ya Kawaida

Maelezo ya Kiufundi

Cron ya kawaida ina sehemu tano: dakika (0–59), saa (0–23), siku ya mwezi (1–31), mwezi (1–12), siku ya wiki (0–6 au 0–7, zote Jumapili). Kila sehemu inakubali thamani moja, orodha iliyotenganishwa kwa koma, masafa yenye kistari, nyongeza kwa /, au wildcard na *.

Matumizi ya siku ya mwezi na ya siku ya wiki AU semantiki: ikiwa mojawapo imewekwa kwa thamani isiyo ya kadi-mwitu, kazi hutekelezwa wakati mojawapo inalingana. Hii ni kinyume lakini inalingana na tabia ya POSIX cron. Kuweka sehemu zote mbili hutoa ratiba pana, sio nyembamba.

Viendelezi hutofautiana kwa utekelezaji. Wengine hukubali uwanja wa sita kwa sekunde (Quartz, Spring); wengine wanakubali? kama mbadala wa kadi ya mwitu; baadhi ni pamoja na @mwaka, @mwezi, @ kila siku njia za mkato. Jenereta hutoa cron ya kawaida ya shamba-5 inayofaa kwa mifumo mingi.

Mazoea Bora

Maswali yanayoulizwa mara kwa mara

Umbizo la usemi wa cron ni nini?
Kawaida cron hutumia nyanja 5: dakika (0-59), saa (0-23), siku ya mwezi (1-31), mwezi (1-12), siku ya wiki (0-7, ambapo 0 na 7 ni Jumapili). Wahusika maalum: * (yoyote), , (orodha), - (anuwai), / (hatua).
Je, ninawezaje kuweka kazi ya kukimbia kila baada ya dakika 5?
Tumia */5 katika sehemu ya dakika: '*/5 * * * *'. The /5 ina maana 'kila thamani ya 5'. Vile vile, */15 = kila dakika 15, */2 = kila dakika 2.
Je, cron hutumia saa ngapi?
Cron kwa kawaida hutumia saa za eneo za mfumo. Kwenye seva za Linux, hii huwa ni UTC isipokuwa ikiwa imesanidiwa vinginevyo. Huduma za wingu (AWS, GCP) mara nyingi chaguomsingi kwa UTC. Angalia mpangilio wa saa za eneo la mfumo wako kila wakati.
Je, hii ni muundo sawa unaotumiwa na Vitendo vya GitHub?
Vitendo vya GitHub hutumia umbizo sawa la sehemu-5 lakini huendeshwa katika saa za eneo la UTC. AWS CloudWatch na Kubernetes CronJobs pia hutumia umbizo hili. Baadhi ya mifumo kama Quartz hutumia umbizo la uga lililopanuliwa la 6-7 na sekunde.
Kuna tofauti gani kati ya 0 kwa siku ya wiki na 7?
Zote mbili zinamaanisha Jumapili. POSIX cron inakubali 0–6 au 0–7. Tumia chochote utekelezaji wako maalum wa cron unapendelea; wengi wanakubali zote mbili.
Mfafanuzi ni sahihi kwa cron isiyo ya kawaida?
Inalenga cron ya kawaida ya 5-field. Viendelezi vya Quartz (kwa sekunde), vibadala vya AWS EventBridge, na lahaja zingine huenda zisichanganue ipasavyo. Thibitisha dhidi ya hati za mfumo lengwa.
Je, usemi wangu umetumwa kwa seva?
Hapana. Kizazi na maelezo hutokea kwenye kivinjari chako.
Je, njia za mkato za @mwaka, @kila mwezi?
Utekelezaji wa kawaida wa cron hutumia @yearly, @monthly, @wiki, @daily, @hourly, na @reboot kama njia za mkato za ratiba za kawaida. Jenereta hutoa maneno ya kawaida ya shamba 5; unaweza kubadilisha njia za mkato wewe mwenyewe ikiwa kiratibu chako atazikubali.