ആർട്ടിക്കിൾ ഡയറക്ടറി
ഒരു വെബ് സെർവറിനെ സംബന്ധിച്ചിടത്തോളം ഏറ്റവും മോശം കാര്യം പ്രവർത്തനരഹിതമായ സമയമല്ല, മറിച്ച് അർത്ഥശൂന്യമായ ജോലികളാൽ വലിച്ചിഴയ്ക്കപ്പെടുന്നതാണ്.
ൽ വേർഡ്പ്രൈസ് WP-Cron-ന്റെ ലോകത്ത്, ഇത് ഒരു അദൃശ്യ ഘടികാരം പോലെയാണ്, വിവിധ സമയബന്ധിത ജോലികൾ നിശബ്ദമായി ഷെഡ്യൂൾ ചെയ്യുന്നു.
ഇത് ആദ്യം സഹായകരമായ ഒരു ഉപകരണമായിരുന്നു, പക്ഷേ പലപ്പോഴും പ്ലഗിനുകൾ അൺഇൻസ്റ്റാൾ ചെയ്തതിനുശേഷം അവശേഷിക്കുന്ന "സോംബി ടാസ്ക്കുകൾ" കാരണം പ്രകടനം മന്ദഗതിയിലാക്കുന്ന ഒരു അദൃശ്യ കൊലയാളിയായി ഇത് മാറുന്നു.
WP-Cron ന്റെ സ്വഭാവവും മറഞ്ഞിരിക്കുന്ന അപകടങ്ങളും
WP-Cron ഒരു സിസ്റ്റം-ലെവൽ ക്രോൺ അല്ല, മറിച്ച് വേർഡ്പ്രസ്സ് തന്നെ അനുകരിച്ച ഒരു ഷെഡ്യൂൾ ചെയ്ത ടാസ്ക് മെക്കാനിസമാണ്.
ഉപയോക്തൃ ആക്സസ് വഴി ട്രിഗർ ചെയ്യുമ്പോൾ എന്തെങ്കിലും ജോലികൾ ചെയ്യേണ്ടതുണ്ടോ എന്ന് മാത്രമേ ഇത് പരിശോധിക്കൂ.
ഇതിനർത്ഥം, ഒരു പ്ലഗിൻ ഒരു ദൈനംദിന ടാസ്ക് രജിസ്റ്റർ ചെയ്താൽ, പ്ലഗിൻ അൺഇൻസ്റ്റാൾ ചെയ്താലും ആ ടാസ്ക് നിലനിൽക്കുമെന്ന് തന്നെയാണ്.
ഫലം, വേർഡ്പ്രസ്സ് എല്ലാ ദിവസവും നിലവിലില്ലാത്ത ഒരു ഹുക്ക് നടപ്പിലാക്കാൻ ശ്രമിക്കുന്നു എന്നതാണ്.
ഇത് വിഭവങ്ങൾ പാഴാക്കുക മാത്രമല്ല, ഡാറ്റാബേസിൽ അസാധുവായ രേഖകൾ അടിഞ്ഞുകൂടുന്നതിനും കാരണമായേക്കാം.
ഔദ്യോഗിക വേർഡ്പ്രസ്സ് ഡെവലപ്പർ ഡോക്യുമെന്റേഷൻ അനുസരിച്ച്, WP-ക്രോണിന്റെ ടാസ്ക് ഷെഡ്യൂളിംഗ് ആശ്രയിച്ചിരിക്കുന്നു... _get_cron_array() രജിസ്റ്റർ ചെയ്ത എല്ലാ ജോലികളും വീണ്ടെടുക്കാൻ.
ഹുക്കിന് അനുയോജ്യമായ ഫംഗ്ഷൻ നിലവിലില്ലെങ്കിൽ, സിസ്റ്റം അത് നടപ്പിലാക്കാൻ ശ്രമിക്കും, പക്ഷേ അവസാനം അത് ലക്ഷ്യമില്ലാതെ കറങ്ങിക്കൊണ്ടിരിക്കും.
അസാധുവായ ഷെഡ്യൂൾ ചെയ്ത ജോലികൾ വൃത്തിയാക്കുന്നത് എന്തുകൊണ്ട്?
നിങ്ങളുടെ വേർഡ്പ്രസ്സ് സൈറ്റ് ഒരു ഓഫീസ് ആണെന്ന് സങ്കൽപ്പിക്കുക.
ജീവനക്കാർ എല്ലാ ദിവസവും കൃത്യസമയത്ത് എത്താറുണ്ട്, എന്നാൽ അവരിൽ ചിലർ ഇതിനകം കമ്പനി വിട്ടുപോയി.
അവരുടെ ജീവനക്കാരുടെ ഐഡി നമ്പറുകൾ ഇപ്പോഴും സിസ്റ്റത്തിലുണ്ട്, എല്ലാ ദിവസവും കാർഡുകൾ സ്വൈപ്പ് ചെയ്യുന്നതിനായി ഹാജർ മെഷീൻ അവർക്കായി കാത്തിരിക്കുന്നു.
ഇത് അസാധുവായ ഒരു CRON പ്രവർത്തനമാണ്.
വളരെക്കാലം വൃത്തിയാക്കിയില്ലെങ്കിൽ, ഡാറ്റാബേസിൽ... അടങ്ങിയിരിക്കും. wp_options പട്ടിക നിറയുകയും അസാധുവാകുകയും ചെയ്യും. _transient ഡാറ്റ.
അതിലും മോശം, ഇടയ്ക്കിടെയുള്ള അസാധുവായ പരിശോധനകൾ PHP-യുടെ നിർവ്വഹണ ഭാരം വർദ്ധിപ്പിക്കുന്നു.
ഗവേഷണം സൂചിപ്പിക്കുന്നത് [എണ്ണത്തിൽ] കൂടുതൽ വേർഡ്പ്രസ്സ് വെബ്സൈറ്റുകൾ 30% പ്രകടന മാലിന്യംഇത് അസാധുവായതോ അനാവശ്യമായതോ ആയ CRON ജോലികൾ മൂലമാണ് (ഉറവിടം: സ്മാഷിംഗ് മാഗസിൻ സാങ്കേതിക വിശകലനം).
അസാധുവായ ജോലികൾ സ്വയമേവ നീക്കം ചെയ്യുന്നതിനുള്ള കോഡ് നടപ്പിലാക്കൽ
പരിഹാരം യഥാർത്ഥത്തിൽ വളരെ സുന്ദരമാണ്.

ഷെഡ്യൂൾ ചെയ്ത എല്ലാ ജോലികളും സ്കാൻ ചെയ്യുന്നതിന് നമ്മൾ എല്ലാ ദിവസവും ഒരു ഡിറ്റക്ഷൻ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിച്ചാൽ മതിയാകും, ഹുക്കിന് അനുയോജ്യമായ ഫംഗ്ഷൻ നിലവിലില്ലെന്ന് കണ്ടെത്തിയാൽ, അത് അത് നീക്കം ചെയ്യും.
ഇനിപ്പറയുന്ന ഫംഗ്ഷൻ കോഡുകൾക്ക് ഇത് നേടാൻ കഴിയും:
add_action('wpcwl_remove_invild_crons', function(){
global $wp_filter;
$wp_crons = _get_cron_array();
foreach ($wp_crons as $timestamp => $wp_cron) {
foreach ($wp_cron as $hook => $dings) {
if(empty($wp_filter[$hook])){
foreach( $dings as $sig=>$data ) {
wp_unschedule_event($timestamp, $hook, $data['args']);
}
}
}
}
});
if(!wp_next_scheduled('wpcwl_remove_invild_crons')) {
wp_schedule_event( time(), 'daily', 'wpcwl_remove_invild_crons' );
}
ഈ കോഡ് മൂന്ന് കാര്യങ്ങൾ ചെയ്യുന്നു:
- ഷെഡ്യൂൾ ചെയ്ത എല്ലാ ജോലികളും ആവർത്തിക്കുക:പാസ്
_get_cron_array()നിലവിൽ രജിസ്റ്റർ ചെയ്ത ജോലികൾ വീണ്ടെടുക്കുക. - ഹുക്ക് ഫലപ്രദമാണോ എന്ന് പരിശോധിക്കുക:എങ്കിൽ
$wp_filter[$hook]ഇത് ശൂന്യമാണെങ്കിൽ, ഈ ഹുക്കിന് അനുബന്ധ ഫംഗ്ഷൻ ഇല്ലെന്നാണ് അർത്ഥമാക്കുന്നത്. - അസാധുവായ ജോലികൾ നീക്കം ചെയ്യുക: വിളിക്കുക
wp_unschedule_event()ടാസ്ക് ഇല്ലാതാക്കുക.
ഒടുവിൽ, എല്ലാ ദിവസവും യാന്ത്രിക വൃത്തിയാക്കൽ ഉറപ്പാക്കുന്നതിനുള്ള ഒരു ദൈനംദിന ചുമതലയും ഇത് രജിസ്റ്റർ ചെയ്തു.
കോഡ് ലോജിക്കിന്റെ ആഴത്തിലുള്ള വിശകലനം
ഈ കോഡ് സങ്കീർണ്ണമാണെന്ന് പലരും കണ്ടെത്തുന്നു, പക്ഷേ യുക്തി യഥാർത്ഥത്തിൽ വളരെ ലളിതമാണ്:
- ആദ്യ ലൂപ്പ്: ടൈംസ്റ്റാമ്പ് ഉപയോഗിച്ച് എല്ലാ ജോലികളും ആവർത്തിക്കുക.
- രണ്ടാമത്തെ ലൂപ്പ്ഹുക്ക് നാമം ഉപയോഗിച്ച് ടാസ്ക്കുകൾ പരിശോധിക്കുക.
- മൂന്നാമത്തെ ലൂപ്പ്ടാസ്ക് സിഗ്നേച്ചറും പാരാമീറ്ററുകളും ഓരോന്നായി ഉപയോഗിച്ച് ടാസ്ക് വൃത്തിയാക്കുക.
ഈ മൂന്ന്-ലെവൽ നെസ്റ്റിംഗ് രീതി ഒരു അസാധുവായ ജോലിയും നഷ്ടപ്പെടുത്തുന്നില്ലെന്ന് ഉറപ്പാക്കുന്നു.
ഒപ്പം wp_unschedule_event() വേർഡ്പ്രസ്സ് ഔദ്യോഗികമായി ശുപാർശ ചെയ്യുന്ന നീക്കം ചെയ്യൽ രീതിയാണിത്, കൂടാതെ ഇത് ഡാറ്റാബേസിലെ അനുബന്ധ റെക്കോർഡുകളും വൃത്തിയാക്കും.
പ്രായോഗിക പ്രയോഗ സാഹചര്യങ്ങൾ
ഉദാഹരണത്തിന്.
നീ ഒന്ന് ഇൻസ്റ്റാൾ ചെയ്തു എസ്.ഇ.ഒ. പ്ലഗിൻ ദിവസവും ഒരു സൈറ്റ് മാപ്പ് സൃഷ്ടിക്കുന്നു.
നിങ്ങൾ പിന്നീട് പ്ലഗിൻ അൺഇൻസ്റ്റാൾ ചെയ്തു, പക്ഷേ അതിന്റെ CRON ജോലി തുടർന്നു.
ഫലം, വേർഡ്പ്രസ്സ് എല്ലാ ദിവസവും എക്സിക്യൂട്ട് ചെയ്യാൻ ശ്രമിക്കുന്നു എന്നതാണ്. seo_generate_sitemap ഈ കൊളുത്ത്.
ഫംഗ്ഷൻ നിലവിലില്ലാത്തതിനാൽ, സിസ്റ്റം വെറുതെ മാത്രമേ പ്രവർത്തിക്കൂ.
മുകളിലുള്ള കോഡ് നിങ്ങൾ പ്രാപ്തമാക്കിയാൽ, ഈ അസാധുവായ ടാസ്ക് അടുത്ത ദിവസം യാന്ത്രികമായി വൃത്തിയാക്കപ്പെടും.
പ്രകടന മെച്ചപ്പെടുത്തൽ പ്രഭാവം
യഥാർത്ഥ ടെസ്റ്റ് ഡാറ്റയെ അടിസ്ഥാനമാക്കി, ഓട്ടോമാറ്റിക് ക്ലീനപ്പ് പ്രാപ്തമാക്കിയതിനുശേഷം ഒരു ഇടത്തരം വേർഡ്പ്രസ്സ് വെബ്സൈറ്റ് (ഏകദേശം 50 പ്ലഗിനുകൾ):
- ഡാറ്റാബേസ് അന്വേഷണങ്ങൾ കുറച്ചു 12%.
- പേജ് ലോഡിംഗ് വേഗത മെച്ചപ്പെട്ടു 0.3 സെക്കൻഡ്.
- ദിവസേനയുള്ള അസാധുവായ ജോലികൾ കുറച്ചു. 20+.
WP എഞ്ചിൻ പ്രകടന റിപ്പോർട്ടിലെ താരതമ്യ പരീക്ഷണങ്ങളിൽ നിന്നാണ് ഈ ഡാറ്റ വരുന്നത്.
മികച്ച രീതികളും ഒപ്റ്റിമൈസേഷൻ നിർദ്ദേശങ്ങളും
ഓട്ടോമാറ്റിക് ക്ലീനപ്പിന് പുറമേ, ചില ഒപ്റ്റിമൈസേഷൻ നിർദ്ദേശങ്ങൾ ഇതാ:
- CRON പ്രവർത്തനങ്ങൾ പതിവായി പരിശോധിക്കുക.WP Crontrol പോലുള്ള പ്ലഗിനുകൾ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് എല്ലാ ജോലികളും ദൃശ്യപരമായി കാണാൻ കഴിയും.
- അനാവശ്യ പ്ലഗിനുകൾ കുറയ്ക്കുകഒരു പ്ലഗിൻ അൺഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, അതിന്റെ ഷെഡ്യൂൾ ചെയ്ത ജോലികൾ സ്വമേധയാ ക്ലിയർ ചെയ്യുന്നതാണ് നല്ലത്.
- സിസ്റ്റം-ലെവൽ ക്രോൺ ഉപയോഗിക്കുകഉയർന്ന ട്രാഫിക് ഉള്ള വെബ്സൈറ്റുകൾക്ക്, WP-Cron പ്രവർത്തനരഹിതമാക്കാനും പകരം സെർവറിന്റെ യഥാർത്ഥ ക്രോൺ സെർവർ ഉപയോഗിക്കാനും ശുപാർശ ചെയ്യുന്നു.
ഇത് WP-Cron ന്റെ ആക്സസ് ഡിപൻഡൻസി പ്രശ്നങ്ങൾ ഒഴിവാക്കുകയും കൂടുതൽ സ്ഥിരത കൈവരിക്കുകയും ചെയ്യുന്നു.
ഉപസംഹാരം: വേർഡ്പ്രസ്സ് വൃത്തിയുള്ള ഒരു താളത്തിൽ നിലനിർത്തുക
വേർഡ്പ്രസ്സ് ഷെഡ്യൂൾ ചെയ്ത ടാസ്ക്കുകൾ ഒരു ബാൻഡ് പോലെയാണ്.
ഓരോ പ്ലഗിനും ഒരു സംഗീതജ്ഞനെപ്പോലെയാണ്, ഓരോന്നും സ്വരച്ചേർച്ചയുള്ള ഒരു മെലഡി സൃഷ്ടിക്കാൻ അതിന്റേതായ പങ്ക് വഹിക്കുന്നു.
പക്ഷേ, സംഗീതജ്ഞർ പോയിക്കഴിഞ്ഞിട്ടും സംഗീത ഷീറ്റ് അവിടെ തന്നെയുണ്ടെങ്കിൽ, അത് വെറും ബഹളം മാത്രമാണ്.
അസാധുവായ CRON ജോലികൾ സ്വയമേവ നീക്കം ചെയ്യുന്നത് ഈ ശബ്ദത്തെ വൃത്തിയാക്കുന്നു, അങ്ങനെ സിസ്റ്റം വൃത്തിയുള്ള വേഗതയിൽ പ്രവർത്തിക്കുന്നു.
ഡിജിറ്റൽ യുഗത്തിൽ, കാര്യക്ഷമതയാണ് ജീവിതം.
ഒരു വെബ്സൈറ്റിന്റെ പ്രകടനം അതിന്റെ രസകരമായ ഫ്രണ്ട്-എൻഡ് ഇഫക്റ്റുകളെ മാത്രമല്ല, അതിന്റെ സൂക്ഷ്മമായ ബാക്ക്-എൻഡ് മാനേജ്മെന്റിനെയും ആശ്രയിച്ചിരിക്കുന്നു.
ഈ കോഡിൽ പ്രാവീണ്യം നേടുന്നത് വേർഡ്പ്രസ്സിന് സ്വയം സുഖപ്പെടുത്താനുള്ള കഴിവ് നൽകും.
ഹെഗൽ ഒരിക്കൽ പറഞ്ഞതുപോലെ, "സ്വാതന്ത്ര്യം എന്നത് നിങ്ങൾ ആഗ്രഹിക്കുന്നതെന്തും ചെയ്യുന്നതല്ല, മറിച്ച് സ്വയം നിയന്ത്രണമാണ്."
നിങ്ങളുടെ വേർഡ്പ്രസ്സിനെ സ്വയം അച്ചടക്കം പഠിപ്പിക്കുന്നതിലൂടെ മാത്രമേ നിങ്ങൾക്ക് സ്വാതന്ത്ര്യത്തിന്റെ ശക്തി യഥാർത്ഥത്തിൽ പുറത്തുവിടാൻ കഴിയൂ.
ഹോപ്പ് ചെൻ വെയ്ലിയാങ് ബ്ലോഗ് ( https://www.chenweiliang.com/ ഇവിടെ പങ്കുവെച്ചിരിക്കുന്ന "WordPress Website Speed-Up Secrets: Automatically Remove Invalid CRON Scheduled Tasks" എന്ന ലേഖനം നിങ്ങൾക്ക് സഹായകരമായേക്കാം.
ഈ ലേഖനത്തിന്റെ ലിങ്ക് പങ്കിടാൻ സ്വാഗതം:https://www.chenweiliang.com/cwl-33971.html
