হাজার হাজার ক্রোন জব মুছুন


16

আমি আবিষ্কার করেছি যে আমার নিষ্ক্রিয় এবং মোছা প্লাগইনগুলি থেকে আমার ওয়ার্ডপ্রেস ডাটাবেসে 29,000 ক্রোন জব রয়েছে। আমি বেশ কয়েকটি অপ্টিমাইজার প্লাগইন চেষ্টা করেছি কিন্তু বিপুল সংখ্যক ক্রোন জব মানে আমি প্লাগিনগুলি ব্যবহার করে সেগুলি মুছতে পারি না।

আমি সাফল্য ছাড়াই আমার ফাংশন.এফপি-তে এটি চেষ্টা করেছি:

add_action("init", "clear_crons_left");
function clear_crons_left() {
    wp_clear_scheduled_hook("cron_name");
}

ক্রোন হুক দিয়ে অনুসন্ধান করতে এবং সেগুলি সরাতে আমি phpmyadmin এ ব্যবহার করতে পারি এমন কোন এসকিউএল আদেশ আছে?


আমি ডাব্লুপি
বাল্ককে

উত্তর:


18

তাত্ক্ষণিক জবাব এবং পরামর্শের জন্য প্রাইভেটর ধন্যবাদ।

আপনার উত্তরটি দেখার আগে আমি এর চারপাশে একটি উপায় খুঁজে পেয়েছি। হাজার হাজার পুরনো ক্রোন জব মুছে ফেলার জন্য এখানে ধাপে ধাপে পদ্ধতিটি দেওয়া হয়েছে এবং অন্য কারও কাজে লাগতে পারে।

আমি পিএইচপিএমআইএডমিনে লগইন করেছি। আমি আমার ডাটাবেস এবং তারপরে 'অনুসন্ধান' ট্যাবে ক্লিক করেছি। আমি 'ক্রোন' টাইপ করেছি তারপরে 'সমস্ত সারণী' নির্বাচন করে 'গো' ক্লিক করেছি। আমি আমার wp_options সারণিতে অনুসন্ধান ফলাফলের তালিকাটি স্ক্রোল করে রেখেছি। আমি 'ব্রাউজ' ক্লিক করেছি। তালিকার শীর্ষে অপশন_নাম 'ক্রোন' ছিল। আমি 'সম্পাদনা' ক্লিক করেছি পৃষ্ঠাটি লোড হওয়ার জন্য অপেক্ষা করছিলাম। আমি সেই বক্সে ক্লিক করেছি যা ক্রোন জবগুলির তালিকা প্রদর্শন করে। ক্রোন তালিকাটি এত দীর্ঘ ছিল যে আমার কার্সারের প্রতিক্রিয়া জানাতে প্রায় 80 সেকেন্ড সময় নিয়েছিল। আমি মুছে ফেলা বোতামটি চাপানোর আগে সমস্তটি নির্বাচন করতে কীবোর্ডে Ctrl-A ব্যবহার করেছি। আমার ব্রাউজারটি মুছে ফেলা শেষ হওয়ার প্রায় 2 মিনিট সময় লেগেছিল (ক্রোমের সময়সীমা শেষ হয়েছে তাই আমি ফায়ারফক্স চেষ্টা করেছি যা কাজ করেছিল)।

আরও কয়েক মিনিট পরে আমার বর্তমান সক্রিয় প্লাগইনগুলির জন্য ক্রোন জব তালিকাটি পুনরায় জনপ্রিয় করেছে। এখানে 9 ক্রোন জব ছিল (29,000 এরও কম!) খারাপভাবে কোডেড প্লাগইনগুলি থেকে ছয় বছরের ডুপ্লিকেট ক্রোন জব, যার মধ্যে কয়েকটি সন্ধানের জন্য আমি কেবল এক দিনের জন্য ইনস্টল করেছি। এছাড়াও ওয়ার্ডফেন্স, ব্যাকআপবাডি, নেক্সটজেন গ্যালারী এবং অটোপটিমাইজারের মতো সাধারণ প্লাগইনগুলি থেকে কয়েকশত - এই সমস্ত কিছু আমি অতীতে আনইনস্টল করেছি। আমার সাইটটি এখন টার্বো-চার্জডের মতো লোড হয়। প্রশাসক অঞ্চলটি অনেক দ্রুত। প্রশাসনের সময়সীমা ত্রুটিগুলি অদৃশ্য হয়ে গেছে। আমি আমার ওয়েবসাইটটি লোড সময় হ্রাস করার চেষ্টা করে অনুকূলকরণের জন্য অনেক সময় ব্যয় করেছি। এমনকি আমি হোস্টগুলিকে সরিয়ে নিয়েছি এবং আমার হোস্টিং পরিকল্পনাগুলি আপগ্রেড করেছি। পুরানো ক্রোন জবগুলি মুছে ফেলার মতো কিছুই আমার সাইটের গতি বাড়েনি। মোবাইল ডাউনলোডের সময় 20 সেকেন্ড থেকে 6 সেকেন্ডে হ্রাস পেয়েছে।

সমাধানের জন্য অনুসন্ধানে আমি ওয়েবসাইটের পারফরম্যান্সে ক্রোন জবগুলির প্রভাব সম্পর্কে খুব কম তথ্য পেয়েছি। অনেকে বলেছিলেন যে এটি সামান্য পার্থক্য করেছে এবং সংখ্যক ক্রোন কাজের জন্য এটি সত্য। তবে কয়েক বছরের ওয়ার্ডপ্রেস সাইটের জীবনে আমি আশ্চর্য হয়েছি যে মুছে ফেলা প্লাগইনগুলি থেকে হাজার হাজার পুরনো ক্রোন কাজ না থাকলে শত শত দিয়ে কতগুলি ফুলে যায়। ব্যবহারকারীদের তাদের পিএইচপি মেমরির সীমা পরীক্ষা করতে বলার পরিবর্তে আমি পরামর্শ দেব যে বিকাশকারীরা প্রথমে ব্যবহারকারীদের ডাব্লুপিওপশনগুলিতে ক্রোন জবসের সংখ্যাটি পরীক্ষা করার জন্য যখন মারাত্মক মেমরির ত্রুটিগুলি সমাধান করে। আপনি যা পেয়েছেন তাতে আপনি অবাক / হতবাক হয়ে যেতে পারেন! :-)


1
আমি একই সমস্যা খুঁজে পেয়েছি। আমার এখন কতটা ক্রোন কাজ ছিল না, তবে এটি ছিল ডেটাবেজে প্রায় 15 এমবি। মোছার পরে অ্যাডমিন অঞ্চল লোড সময়টি 5-7 থেকে 0.3 সেকেন্ডে হ্রাস পেয়েছে। সামনের লোড সময় 2 থেকে 0.4 সেকেন্ডে হ্রাস পেয়েছে।
অ্যালেক্সি

1
ধুর! ছাই! এই সমাধান আমাদের বাঁচাতে! এই টেবিলটিতে 35000 ক্রোন জব ছিল। বর্ণিত হিসাবে এটি এখন টার্বোচার্জড বলে মনে হচ্ছে।
রিকার্ডো

প্রকৃতপক্ষে আমি যেহেতু ক্লায়েন্টের জন্য উল্লিখিত প্লাগইনগুলির মধ্যে একটি ইনস্টল করার কথা ভাবছিলাম তা জানতে খুব ভাল। সুতরাং এখন আমি জানি যখন কর্মক্ষমতা ধীরে ধীরে অবনতি ঘটে তখন কী জন্য সন্ধান করা উচিত।
lowtechsun

10

চেষ্টা

SELECT * FROM `wp_options` WHERE option_name = 'cron'

যদি এটি খুঁজে পান তবে আপনি চেষ্টা করতে পারেন:

  • এসকিউএল এ: UPDATE wp_options SET option_value = '' WHERE option_name = 'cron'
  • ওয়ার্ডপ্রেসে: update_option('cron', '');

আপনার প্রয়োজন হয় ক্রোন বিকল্পটি মুছতে হবে বা মানটি একটি খালি সিরিয়ালাইজড অ্যারেতে সেট করতে হবে।

আপডেট_ওশন ব্যবহার করা নিরাপদ হবে কারণ আমি মানটি সিরিয়ালযুক্ত খালি অ্যারে বা খালি স্ট্রিং হওয়া উচিত কিনা তা সম্পর্কে আমি নিশ্চিত নই। আপনি যদিও ডাব্লুপি-অন্তর্ভুক্ত / অপশনস.এফপি চেক করতে পারেন ... তবে আপডেট_পশন ব্যবহার করে এটি ডাটাবেস সম্পর্কে চিন্তা না করে সঠিকভাবে পরিচালনা করবে।


7

ওয়ার্ডপ্রেস ক্রোন ইভেন্টগুলি ডাব্লুপি-সিএলআই ব্যবহার করে কমান্ড লাইন থেকেও সাফ করা যেতে পারে :

wp cron event list
wp cron event delete your_example_event

ডাব্লুপি-ক্লিপ ডক্সে আরও বিশদ ।


3
বা সমস্ত ইভেন্ট মুছুনwp option delete cron
স্যামুয়েল এলহ

1
wp option delete cronবিকল্পগুলির মধ্যে হাজার হাজার ক্রোন জব রয়েছে এমন কাজ করে works এই খারাপ কাজগুলি বেশিরভাগ খারাপ প্লাগইন থেকে আসে, ক্রোনটি ভুল উপায়ে করে।
স্বশতা ঘোষ

6

একটি এমনকি সহজ সমাধান হ'ল delete_option( 'cron' );কিছু প্লাগইনে একবার কল করা । আপনার সাইটের পরবর্তী ভিজিট / অনুরোধে সমস্ত স্বয়ংক্রিয়ভাবে যুক্ত ক্রোন জবগুলি আবার যুক্ত হবে।

একটি কেস (মিউ) প্লাগইন হিসাবে যা কেবল যখনই আপনি এটি সক্রিয় করেন:

<?php
/** Plugin Name: Clean Cron */
register_activation_hook( __FILE__, function()
{
    delete_option( 'cron' );
} );

ধন্যবাদ কায়সার! প্লাগইনগুলি তৈরি / সম্পাদনা করতে স্বাচ্ছন্দ্য বোধ করেন না (এটি সহজ!), আপনি আপনার ফাংশন.এফপি ফাইলটিতে কায়সার যা উল্লেখ করেছেন তা ব্যবহার করতে পারেন। কেবল এটি যুক্ত করুন, এটি সংরক্ষণ করুন, আপনার সাইটটি লোড করুন, তারপরে এটি সরান এবং এটি আবার সংরক্ষণ করুন।
প্রাইভেটর

প্লাগইন অ্যাক্টিভেশনে তৈরি করা ক্রোন জবগুলি সম্পর্কে কী বলা যায়? আপনি প্লাগইনটি সক্রিয় ও সক্রিয় না করা পর্যন্ত এই ক্রোন জবগুলি পুনরায় তৈরি করা হবে না।
আলপাইপগো

ঠিক আছে, এটি ডিফল্ট হিসাবে সম্ভব নয় , এটির সাথে বা অন্যান্য প্রশ্নের সাথেও নয়। আপনাকে যা করতে হবে তা হ'ল হয়- এই প্লাগইনগুলি ডি- এবং পুনরায় সক্রিয় করা (~ 3 মিনিটের কাজ), বা - আপনি যদি একটি স্বয়ংক্রিয় উত্তর অনুসন্ধান করছেন - সেই প্লাগইনগুলিতে ফাংশনগুলি সন্ধান করুন এবং আপনার প্লাগইন থেকেই তাদের ট্রিগার করুন।
কায়সার

1

যদি কেউ নির্দিষ্ট ক্রোন নামটি সাফ করতে চান ('CRON_NAME' বলুন), এই সমাধানটি আমার পক্ষে কাজ করেছে:

    $crons = _get_cron_array();
    //echo "Found total ".count($crons)."<br />";
    //Keep only the ones that don't match the cron name
    $updated = array_filter($crons, function($v){return !array_key_exists("CRON_NAME",$v);});
    //echo "Reduced to ".count($updated)."<br />";        
    _set_cron_array($updated);

1

আমার এক বছর পূর্ণ মুলতুবি ক্রোন জব ছিল, এই একক ডাটাবেসের প্রবেশের জন্য প্রায় 5 এমবি ডেটা। ডাটাবেস থেকে ক্রোন জব মুছে ফেলা হয়েছে। Wp-config.php- এ অক্ষম ক্রোন জবগুলি

সিপ্যানেলে একটি ম্যানুয়াল ক্রোন জব সেট আপ করুন। এখন আমার সাইটটি আক্ষরিকভাবে উড়ছে। আমি সার্ভারগুলি আপগ্রেড করেছিলাম, আরও সিপিইউ / র‌্যাম কিনছিলাম, তবে সবই ছিল অর্থ এবং সময় অপচয়।

সমস্ত মুলতুবি ক্রোন জব মুছতে phpmyadmin> ক্যোয়ারি চালান:

UPDATE wp_options SET option_value = '' WHERE option_name = 'cron'

অনেক অনেক ধন্যবাদ প্যাডের্যাগ Ó বের্ন।


আপনি স্বাগতম Preetinder! আমি আনন্দিত এটি সাহায্য ছিল। মুলতুবি ক্রোন কাজের পাশাপাশি পরামর্শ দেওয়ার জন্য ধন্যবাদ।
পেদ্রাগ Ó বের্ন

0

আপনি যদি আপনার ক্রোন কার্যগুলি এইভাবে সাফ করেন এবং আপনি আপড্রাফ্টপ্লাস ব্যবহার করেন তবে ক্রোন কার্যগুলিকে পুনরায় জন্মানোর জন্য আপনার সেটিংসটি পুনরায় সংরক্ষণ করতে হবে। আপনি এটি না করা পর্যন্ত আপনার স্বয়ংক্রিয় ব্যাকআপগুলি চলবে না (তবে ম্যানুয়াল ব্যাকআপগুলি হবে)।

সেটিংস এখনও থাকবে, এবং আপনাকে কোনও কিছু সম্পাদনা করার দরকার নেই। কেবলমাত্র [আপড্রাফটপ্লাস শীর্ষ মেনু] -> সেটিংসে যান এবং নীচে নীচে স্ক্রোল করুন এবং "পরিবর্তনগুলি সংরক্ষণ করুন" এ ক্লিক করুন।


0

বিপুল পরিমাণ sm_pingক্রোনজব থাকায় আমি এখানে এসেছি wp_options। যদি এটি আপনার সমস্যা হয় তবে আপনি নিম্নলিখিতটি চেষ্টা করতে পারেন:

আপনার phpmyadmin অ্যাক্সেস না থাকলে ফাংশন.এফপি (চাইল্ড থিম) এ রাখুন, বিশেষত যদি আপনার সাইটটি পিং ক্রোনজবস (স্মিপিং) দিয়ে সজ্জিত থাকে:

if (isset($_GET['doing_wp_cron'])) {
remove_action('do_pings', 'do_all_pings');
wp_clear_scheduled_hook('do_pings');
}

0

আমি একটি অনুরূপ ইস্যুতে দৌড়েছি, যেখানে আমার নিজের কোডিং ত্রুটিগুলির কারণে, একটি নির্দিষ্ট ক্রোন কাজের হাজার হাজার কপি একটি সাইটে যুক্ত করা হয়েছিল। Wp_clear_schedised_hook ফাংশনটি সময়সাপেক্ষে উপস্থিত হয়ে ব্যর্থ হয়েছিল। আমি এটির চারপাশে একটি স্ক্রিপ্ট পেয়েছি যা অ্যারের মধ্যে ক্রোন ফাংশনের সমস্ত উদাহরণ আনসেট করে এবং তারপরে অপশন টেবিলে ফিল্টার করা অ্যারেটিকে নতুন ক্রোন বিকল্প হিসাবে যুক্ত করে। নিচে দেখ.

এইভাবে, সাইটটিতে পূর্বে যুক্ত হওয়া কাঙ্ক্ষিত ক্রোন জবগুলি উড়িয়ে দেওয়া এড়িয়ে গিয়েছিলাম।

এটি এমন একটি ফাংশন হিসাবে সংশোধন করা যেতে পারে যা হ্যান্ডলগুলি থেকে অ্যারে নিতে বা হ্যান্ডলসের একটি অ্যারে সংরক্ষণ করতে পারে takes

$crons = _get_cron_array();
    $hook = 'tj_flush_w3tc_cache';
    foreach ( $crons as $timestamp => $cron ) {
    if ( isset( $cron[ $hook ] ) ) {
        unset($cron[$hook]);
    }
    if(!empty($cron))
        $newcron[$timestamp] = $cron;       
    }
    update_option('cron',$newcron);

0

সমস্ত ক্রোন ইভেন্টগুলি মুছতে আমার কাছে খুব সহজ উপায় রয়েছে। এর আগে, আপনাকে wp-config এ ডাব্লুপি ক্রোন অক্ষম করতে হবে তারপরে, আপনি প্লাগইন ডাব্লুপি কন্ট্রোলটি ইনস্টল করুন তারপরে, সরঞ্জাম মেনুতে যান> ক্রোন ইভেন্টগুলি> সমস্ত পছন্দ হয়েছে ক্লিক করুন> সেগুলি মুছুন। আপনি এটি চেষ্টা করতে পারেন ধন্যবাদ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.