Cron Expression Explainer

Developer

Ang tunay na ibig sabihin ng cron schedule, at ang susunod na limang takbo.

Ano ang ibig sabihin
Tuwing 15 minuto, araw-araw.
minutooraspetsabuwanaraw ng linggo
Susunod na limang takbo
Huwebes2026-01-01 00:15
Huwebes2026-01-01 00:30
Huwebes2026-01-01 00:45
Huwebes2026-01-01 01:00
Huwebes2026-01-01 01:15

Oras ito sa orasan sa dingding. Tumatakbo ang cron kapag ganito na ang basa ng orasan ng server, anuman ang offset sa araw na iyon — hindi na sumusunod sa daylight saving ang Pilipinas mula 1978, kaya hindi ito gumagalaw dito.

Patlang sa patlang
minuto*/15 0, 15, 30, 45
oras* kahit ano
petsa* kahit ano
buwan* kahit ano
araw ng linggo* kahit ano

Paano gamitin

Para saan ito

Alamin sa simpleng salita kung kailan tatakbo ang naka-iskedyul na job, mula sa maikling cron line na gamit ng server o app — at makita ang eksaktong oras ng mga susunod na takbo.

Bago magsimula

Ihanda ang linya ng iskedyul, gaya ng 0 9 * * 1-5, kinopya mula sa crontab, sa settings ng server o sa dokumentasyon ng app.

  1. Ilagay ang iskedyul

    I-type o i-paste ito sa Cron expression. Lima ang bahagi nito na pinaghihiwalay ng espasyo, at sinasabi ng mga label sa ilalim ng kahon kung ano ang bawat isa: minuto, oras, petsa, buwan at araw ng linggo. Ang * ay "bawat".

  2. O magsimula sa halimbawa

    Pindutin ang Tuwing 15 min, Karaniwang araw 9am o Buwanan para mag-load ng karaniwang iskedyul at baguhin ito mula roon. Nilo-load ng Ang bitag na O ang iskedyul na pinakamadalas mabasa nang mali.

  3. Piliin kung saan magbibilang

    Iwang blangko ang Bilangin mula sa para ilista ang mga susunod na takbo mula ngayon. Pumili ng petsa at oras dito para makita ang mga takbo pagkatapos ng sandaling iyon.

  4. Ipaliwanag

    Pindutin ang Ipaliwanag. Nag-a-update rin ang kahulugan sa itaas habang nagta-type ka, kaya puwede mong baguhin ang isang bahagi at panoorin ang pagbabago ng pangungusap.

Pagbasa ng resulta

  • Ano ang ibig sabihin: ang iskedyul sa simpleng pangungusap, gaya ng "Tuwing 15 minuto, araw-araw."
  • Susunod na limang takbo: ang araw, petsa at oras ng bawat paparating na takbo. Oras ito sa orasan, kaya tama ito para sa anumang time zone na nakatakda sa orasan ng server.
  • Patlang sa patlang: ang bawat isa sa limang bahagi gaya ng pagkakasulat mo, at ang mga value na pinapayagan nito.

Kung may problema

  • Anim ang bahagi ng linya mo at sabi ng pahina, Inilalagay ng Quartz at Spring ang SEGUNDO sa unahan: nagsisimula sa segundo ang ganoong iskedyul. Para gamitin ito sa crontab, burahin ang unang bahagi.
  • Mas maraming araw itong tumatakbo kaysa inaasahan mo: kapag parehong may petsa ng buwan at araw ng linggo, tumatakbo ito kapag ALINMAN ang tumugma — ang 0 0 13 * 5 ay ika-13 ng bawat buwan at bawat Biyernes. Para kailanganin ang dalawa, isa lang ang itakda rito at suriin ang isa pa sa loob mismo ng job.
  • Sabi ng mensahe, Hindi kailanman tumatakbo ang expression: kadalasan, may araw itong wala sa buwan, gaya ng 30 Pebrero. Tandaan din na nilalaktawan, hindi inililipat, ang job na nakatakda sa ika-31 sa mas maiikling buwan.

Ano ito

Limang patlang ang cron: minuto oras petsa buwan araw-ng-linggo. Madali iyon. Ang mahirap ay kung paano pinagsasama ang dalawang patlang ng araw.

Kapag parehong may hangganan ang petsa at ang araw-ng-linggo, tumatakbo ang cron kapag ALINMAN sa dalawa ang tumugma — hindi kapag pareho. Kaya ang 0 0 13 * 5 ay hindi Biyernes ng ika-13. Ito ay hatinggabi tuwing ika-13 ng buwan at hatinggabi tuwing Biyernes: mga animnapung takbo kada taon, hindi isa o dalawa.

Wala itong babala sa crontab. Tahimik lang tumatakbo nang animnapung beses ang trabahong akala mo ay taunan.

Ang isa pang bitag ay ang petsang hindi umiiral. Ang 0 0 31 * * ay pitong beses lang tumatakbo kada taon — nilalaktawan ng cron ang buwang mas maikli, hindi inililipat sa ika-30. Para sa huling araw ng buwan, gawing araw-araw at suriin ang petsa sa loob ng trabaho.

Mga tanong

Ang “0 0 13 * 5” ba ay Biyernes ng ika-13?

Hindi, at ito ang pinakamaling nababasang panuntunan sa cron. Kapag PAREHONG may takda ang patlang ng petsa at ng araw-ng-linggo, tumatakbo ang POSIX cron kapag ALINMAN ang tumugma — hindi kapag pareho. Ang ekspresyong iyon ay tumatakbo tuwing hatinggabi ng ika-13 ng bawat buwan AT tuwing hatinggabi ng Biyernes: mga animnapung takbo kada taon sa halip na isa o dalawa. Para kailanganin ang dalawang kondisyon, isang patlang lang ang itakda at suriin ang isa sa loob mismo ng trabaho.

Anim na patlang ang ekspresyon ko at tinatanggihan ito. Bakit?

Dahil ang anim na patlang ay Quartz o Spring, at SEGUNDO ang inuuna nila. Lima ang kinukuha ng Unix crontab, simula sa minuto. Hindi sila mapagpapalit: ang “0 0 12 * * ?” ay tanghali sa Quartz at walang kuwenta sa crontab. Ang pagbagsak sa unang patlang para magkasya ay gagawa ng kapani-paniwala at maling iskedyul, kaya tinatanggihan ito kasama ang dahilan.

Ano ang mangyayari sa ika-31 sa buwang tatlumpung araw lang?

Wala — nilalaktawan ito ng cron sa halip na ilipat ang takbo sa ika-30 o ika-1. Ang “0 0 31 * *” ay tumatakbo ng pitong beses kada taon, at ang “0 0 30 * *” ay hindi kailanman tumatakbo sa Pebrero. Kung gusto mo ang huling araw ng buwan, gawin itong araw-araw at suriin ang petsa sa loob ng trabaho.

Ang Linggo ba ay 0 o 7?

Pareho, sa bawat tunay na cron. Ang araw-ng-linggo ay 0 hanggang 7 na may Linggo sa magkabilang dulo, at iyon ang dahilan kung bakit iisang iskedyul ang “* * * * 0” at ang “* * * * 7”. Tinatanggap nito ang alinman at inililipat ang 7 sa 0.

Nasa timezone ko ba ang mga oras ng pagtakbo?

Oras ito sa orasan sa dingding, at ganoon nga gumagana ang cron: ang “0 3 * * *” ay nangangahulugang “kapag 03:00 na ang basa ng orasan ng server”, anuman ang UTC offset sa araw na iyon. Kaya tama ang listahan para sa alinmang zone ng server mo. Sa server na sumusunod sa daylight saving, ang oras na nasa loob ng nilaktawang oras ay hindi kailanman tumatakbo at ang nasa loob ng inulit na oras ay puwedeng tumakbo nang dalawang beses — hindi iyon lumilitaw sa Pilipinas, na hindi na sumusunod sa DST mula 1978.

Bakit nito tinatanggihan ang L, W at #?

Mga ekstensiyon iyon ng Quartz: ang L ay “huli”, ang W ay “pinakamalapit na karaniwang araw”, at ang # ay “ang ikailan sa buwan”. Walang Unix crontab na nakakaunawa sa kanila. Ang pagbasa sa “5L” bilang payak na 5 ay magbibigay sa iyo ng listahan ng takbong tiwalang-tiwala at mali, kaya pinapangalanan at tinatanggihan ito.

Ang komputasyon

Paano pinagsasama ang dalawang patlang ng araw
Petsa = *, araw = *araw-araw
Petsa lang ang may takdapetsa lang
Araw lang ang may takdaaraw lang
Pareho may takdapetsa O araw
Huling hilera lang ang nakakagulat — at doon nagkakamali ang halos lahat. Para kailanganin ang pareho, isa lang ang itakda sa cron at suriin ang isa sa loob ng trabaho.

Ituloy pa

Mahalaga

Runs entirely in your browser; nothing is transmitted. Standard five-field Unix cron only — Quartz syntax (six fields, L, W, #) is named and refused rather than guessed at. Run times are wall-clock times, which is how cron itself works. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.