Cron എക്സ്പ്രഷൻ വിശകലനവും അതിന്റെ ഘടനയും
ടാസ്ക് ഷെഡ്യൂളിംഗ് പ്രക്രിയകളിൽ കൃത്യത ഉറപ്പാക്കാൻ ഉപയോഗിക്കുന്ന ഒരു പ്രധാന മാർഗ്ഗമാണ് cron എക്സ്പ്രഷനുകൾ. ഒരു നിശ്ചിത സമയത്തോ കൃത്യമായ ഇടവേളകളിലോ പ്രവർത്തിക്കേണ്ട ബാക്ക്ഗ്രൗണ്ട് ജോലികൾ ക്രമീകരിക്കാൻ ഡെവലപ്പർമാരും സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർമാരും ഈ രീതി ഉപയോഗിക്കുന്നു. എന്നാൽ സങ്കീർണ്ണമായ എക്സ്പ്രഷനുകൾ എഴുതുമ്പോൾ അവയുടെ കൃത്യമായ പ്രവർത്തന സമയം മുൻകൂട്ടി മനസ്സിലാക്കുക പ്രയാസകരമാണ്. "Cron എക്സ്പ്രഷൻ പാർസർ" ടൂൾ ഒരു cron എക്സ്പ്രഷനെ അതിന്റെ ഘടകങ്ങളായി വിഭജിച്ച് ലളിതമായി വിശദീകരിക്കുകയും അടുത്തതായി അത് പ്രവർത്തിക്കുന്ന സമയങ്ങൾ പ്രിവ്യൂ ചെയ്യുകയും ചെയ്യുന്നു.
ഈ ടൂൾ പ്രധാനമായും സ്റ്റാൻഡേർഡ് 5-ഫീൽഡ് cron എക്സ്പ്രഷനുകളാണ് പിന്തുണയ്ക്കുന്നത്. ഇതിൽ മിനിറ്റ്, മണിക്കൂർ, മാസത്തിലെ ദിവസം, മാസം, ആഴ്ചയിലെ ദിവസം എന്നിവ ഉൾപ്പെടുന്നു. കൂടാതെ @yearly, @monthly, @weekly, @daily, @hourly തുടങ്ങിയ കുറുക്കുവഴികളും ഇതിൽ വിശകലനം ചെയ്യാൻ സാധിക്കും.
ഇൻപുട്ടുകളും ഔട്ട്പുട്ടുകളും
ഈ ടൂൾ ഉപയോഗിക്കുന്നതിന് പ്രധാനമായും രണ്ട് ഇൻപുട്ടുകളാണ് നൽകേണ്ടത്:
- Cron എക്സ്പ്രഷൻ: വിശകലനം ചെയ്യേണ്ട സിംഗിൾ-ലൈൻ ടെക്സ്റ്റ് ഇൻപുട്ട്. ഉദാഹരണത്തിന്
*/15 9-17 * * MON-FRIഎന്ന രീതിയിലുള്ള മൂല്യങ്ങൾ നൽകാം. - എണ്ണം: അടുത്തതായി റൺ ചെയ്യുന്ന എത്ര സമയങ്ങൾ ഡിസ്പ്ലേ ചെയ്യണമെന്ന് ക്രമീകരിക്കാനുള്ള സംഖ്യാ ഇൻപുട്ട് (ഇത് 1 മുതൽ 20 വരെ ക്രമീകരിക്കാം).
ഇൻപുട്ട് നൽകിക്കഴിഞ്ഞാൽ താഴെ പറയുന്ന ഔട്ട്പുട്ടുകൾ ലഭ്യമാകും:
- ഷെഡ്യൂൾ വിവരങ്ങൾ:
- മിനിറ്റ്: മിനിറ്റ് ഫീൽഡിന്റെ പാർസ് ചെയ്ത മൂല്യം.
- മണിക്കൂർ: മണിക്കൂർ ഫീൽഡിന്റെ പാർസ് ചെയ്ത മൂല്യം.
- മാസത്തിലെ ദിവസം: മാസത്തിലെ ദിവസത്തിന്റെ പാർസ് ചെയ്ത മൂല്യം.
- മാസം: മാസത്തിന്റെ പാർസ് ചെയ്ത മൂല്യം.
- ആഴ്ചയിലെ ദിവസം: ആഴ്ചയിലെ ദിവസത്തിന്റെ പാർസ് ചെയ്ത മൂല്യം.
- അടുത്ത റണ്ണുകൾ: ഷെഡ്യൂൾ അനുസരിച്ച് അടുത്തതായി വരുന്ന റൺ സമയങ്ങളുടെ പട്ടിക. ഇതിനൊപ്പം "(നിങ്ങളുടെ പ്രാദേശിക സമയം)" എന്ന കുറിപ്പും "കാണിച്ച റണ്ണുകൾ" എന്ന ലേബലിൽ റൺ സമയങ്ങളുടെ എണ്ണവും പ്രദർശിപ്പിക്കുന്നു.
പ്രവർത്തന നിയമങ്ങളും പ്രത്യേകതകളും
Cron എക്സ്പ്രഷനുകൾ പാർസ് ചെയ്യുമ്പോൾ ഈ ടൂൾ ചില പ്രത്യേക നിയമങ്ങളും പരിധികളും പിന്തുടരുന്നു:
- വൈൽഡ്കാർഡ് ചിഹ്നം: ഫീൽഡുകളിൽ
*ചിഹ്നം നൽകിയാൽ അത് "ഏതും" എന്ന് കാണിക്കുന്നു. - സ്റ്റെപ്പ് ഫോർമാറ്റുകൾ:
*/nരൂപത്തിലുള്ള ഇൻപുട്ടുകൾ നൽകുമ്പോൾ, അത് ഫീൽഡിനെ അടിസ്ഥാനമാക്കി "എല്ലാ{n}മിനിറ്റിലും", "എല്ലാ{n}മണിക്കൂറിലും", "എല്ലാ{n}ദിവസത്തിലും", അല്ലെങ്കിൽ "എല്ലാ{n}മാസത്തിലും" എന്നിങ്ങനെ കാണിക്കുന്നു. - രണ്ട് ഫീൽഡുകളുടെ പ്രത്യേകത: മാസത്തിലെ ദിവസവും ആഴ്ചയിലെ ദിവസവും ഒരുപോലെ നിയന്ത്രിക്കപ്പെട്ടിരിക്കുമ്പോൾ (
*അല്ലാത്ത അവസ്ഥയിൽ), ഇതിൽ ഏതെങ്കിലും ഒരു ഫീൽഡ് പൊരുത്തപ്പെട്ടാൽ തന്നെ ഷെഡ്യൂൾ റൺ ചെയ്യുന്നതാണ്. - പിന്തുണയ്ക്കാത്തവ: ഈ ടൂൾ 6-ഫീൽഡ് സിന്റാക്സ് (സെക്കൻഡ് ഉൾപ്പെടുന്നവ) പിന്തുണയ്ക്കുന്നില്ല. കൂടാതെ Quartz ഷെഡ്യൂളറുകളിൽ കാണുന്ന
L,W,#തുടങ്ങിയ പ്രത്യേക എക്സ്റ്റൻഷനുകളും പിന്തുണയ്ക്കുന്നില്ല. - പിശക് സന്ദേശങ്ങൾ:
- ഇൻപുട്ട് ഫീൽഡ് ശൂന്യമാണെങ്കിൽ ടൂൾ "പാർസ് ചെയ്യാൻ ഒരു cron എക്സ്പ്രഷൻ നൽകുക." എന്ന അവസ്ഥയിലേക്ക് മടങ്ങുന്നു.
- നൽകിയ എക്സ്പ്രഷൻ തെറ്റാണെങ്കിൽ "അസാധുവായ cron എക്സ്പ്രഷൻ" എന്ന് കാണിക്കും.
- എക്സ്പ്രഷൻ സാധുവാണെങ്കിലും ഒരിക്കലും സംഭവിക്കാത്ത ഒരു ഷെഡ്യൂൾ ആണെങ്കിൽ "ഈ ഷെഡ്യൂൾ ഒരിക്കലും സംഭവിക്കില്ല — തിരഞ്ഞെടുത്ത എല്ലാ മാസങ്ങളിലും ഇല്ലാത്ത ഒരു ദിവസം നൽകിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുക." എന്ന പിശക് സന്ദേശം കാണിക്കുന്നു. ഏപ്രിൽ, ജൂൺ, സെപ്റ്റംബർ, നവംബർ തുടങ്ങിയ 30 ദിവസങ്ങൾ മാത്രമുള്ള മാസങ്ങൾ തിരഞ്ഞെടുക്കുകയും ഒപ്പം ദിവസമായി 31 നൽകുകയും ചെയ്യുമ്പോൾ സാധാരണയായി ഈ പിശക് ഉണ്ടാകുന്നു.
സ്വകാര്യതയും ഡാറ്റാ പ്രോസസ്സിംഗും
ഈ ടൂൾ ഉപയോഗിക്കുമ്പോൾ നിങ്ങളുടെ സ്വകാര്യത പൂർണ്ണമായും സംരക്ഷിക്കപ്പെടുന്നു. നിങ്ങളുടെ cron എക്സ്പ്രഷൻ ബ്രൗസറിലാണ് പാർസ് ചെയ്യുന്നത്. BroBroGo-ലേക്ക് ഒന്നും അയയ്ക്കുന്നില്ല. ഡാറ്റാ പ്രോസസ്സിംഗ് പൂർണ്ണമായും ഉപയോക്താവിന്റെ ബ്രൗസറിൽ തന്നെ നടക്കുന്നതിനാൽ ബാഹ്യ സെർവറുകളിലേക്ക് വിവരങ്ങൾ കൈമാറ്റം ചെയ്യപ്പെടുന്നില്ല.
ടാസ്ക് ഷെഡ്യൂളിംഗിൽ Cron-ന്റെ പങ്ക്
സിസ്റ്റം അഡ്മിനിസ്ട്രേഷൻ, സോഫ്റ്റ്വെയർ ഡെവലപ്മെന്റ് എന്നിവയിൽ ആവർത്തിച്ചുള്ള ജോലികൾ സ്വയമേവ പ്രവർത്തിപ്പിക്കുന്നതിന് cron വലിയ പങ്കുവഹിക്കുന്നു. ഡാറ്റാബേസ് ബാക്കപ്പുകൾ എടുക്കുക, ഇമെയിലുകൾ അയയ്ക്കുക, സിസ്റ്റം ലോഗുകൾ ക്ലീൻ ചെയ്യുക തുടങ്ങിയ ജോലികൾ കൃത്യസമയത്ത് നടക്കുന്നു എന്ന് ഉറപ്പാക്കാൻ ഇത് സഹായിക്കുന്നു. ഡെവലപ്പർമാർക്കും സിസ്റ്റം ഓപ്പറേഷൻസ് ജീവനക്കാർക്കും തങ്ങൾ കോൺഫിഗർ ചെയ്ത ഷെഡ്യൂളുകൾ ശരിയാണോ എന്ന് പരിശോധിക്കാൻ ഒരു പാർസർ ടൂൾ അത്യാവശ്യമാണ്.
വിവിധ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലും ക്ലൗഡ് പ്ലാറ്റ്ഫോമുകളിലും സമയമേഖലകൾ (Timezones) വ്യത്യസ്തമായിരിക്കാം. ഈ ടൂൾ അടുത്ത റൺ സമയങ്ങൾ നിങ്ങളുടെ ബ്രൗസറിന്റെ പ്രാദേശിക സമയമേഖലയിലാണ് കാണിക്കുന്നത്. അതിനാൽ സെർവർ റൺ ടൈം കണക്കാക്കുമ്പോൾ സെർവറിന്റെ സമയമേഖലയും നിങ്ങളുടെ പ്രാദേശിക സമയമേഖലയും തമ്മിലുള്ള വ്യത്യാസം പ്രത്യേകം പരിഗണിക്കേണ്ടതുണ്ട്.
പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ (FAQ)
ഈ ടൂൾ ഏത് തരം cron സിന്റാക്സ് ആണ് പിന്തുണയ്ക്കുന്നത്?
സ്റ്റാൻഡേർഡ് 5-ഫീൽഡ് cron — മിനിറ്റ്, മണിക്കൂർ, മാസത്തിലെ ദിവസം, മാസം, ആഴ്ചയിലെ ദിവസം — ഇതിൽ പരിധികൾ (1-5), സ്റ്റെപ്പുകൾ (/15), ലിസ്റ്റുകൾ (1,15), പേരുള്ള മാസങ്ങളും പ്രവൃത്തിദിനങ്ങളും (JAN, MON), കൂടാതെ @yearly/@monthly/@weekly/@daily/@hourly കുറുക്കുവഴികളും ഉൾപ്പെടുന്നു. എളുപ്പത്തിൽ ശ്രദ്ധിക്കപ്പെടാതെ പോകുന്ന ഒരു നിയമം: മാസത്തിലെ ദിവസവും ആഴ്ചയിലെ ദിവസവും പരിമിതപ്പെടുത്തിയിരിക്കുമ്പോൾ ( അല്ലാത്തപ്പോൾ), ഇതിൽ ഏതെങ്കിലും ഒന്ന് പൊരുത്തപ്പെടുന്നത് മതിയാകും — രണ്ടും ഒരേപോലെയാകണമെന്നില്ല.
അടുത്ത റൺ സമയങ്ങൾ ഏത് സമയമേഖലയിലാണ് കാണിക്കുന്നത്?
നിങ്ങളുടെ ബ്രൗസറിന്റെ പ്രാദേശിക സമയമേഖല — നിങ്ങളുടെ സിസ്റ്റം ക്ലോക്ക് ഉപയോഗിക്കുന്ന അതേ സമയമേഖല തന്നെ. സ്റ്റാൻഡേർഡ് cron-ന് സ്വന്തമായി ഒരു സമയമേഖലയില്ല; ഇത് പ്രവർത്തിപ്പിക്കുന്ന ജോബ് ഷെഡ്യൂളർ ആണ് അത് തീരുമാനിക്കുന്നത്. അതിനാൽ ഈ സമയങ്ങളെ നിങ്ങളുടെ സ്വന്തം പ്രാദേശിക ഷെഡ്യൂളിന്റെ പ്രിവ്യൂ ആയി മാത്രം കാണുക, സെർവറിന്റെ സമയം ആകണമെന്നില്ല.
ഈ ഷെഡ്യൂൾ ഒരിക്കലും സംഭവിക്കില്ല എന്ന് കാണിക്കുന്നത് എന്തുകൊണ്ടാണ്?
സാധാരണയായി തിരഞ്ഞെടുത്ത എല്ലാ മാസങ്ങളിലും ഇല്ലാത്ത ഒരു മാസത്തിലെ ദിവസ മൂല്യം നൽകുമ്പോഴാണ് ഇത് സംഭവിക്കുന്നത് — ഉദാഹരണത്തിന്, ഏപ്രിൽ, ജൂൺ, സെപ്റ്റംബർ അല്ലെങ്കിൽ നവംബർ മാസങ്ങൾക്കൊപ്പം 31-ാം തീയതി നൽകുമ്പോൾ. നിങ്ങൾ ലിസ്റ്റ് ചെയ്തിട്ടുള്ള എല്ലാ മാസങ്ങളിലും ഉള്ള ഒരു ദിവസം തിരഞ്ഞെടുക്കുക, അല്ലെങ്കിൽ ഷെഡ്യൂളിനെ പ്രത്യേക എക്സ്പ്രഷനുകളായി വിഭജിക്കുക.