BÜYÜK SQL tablolarını DÜZELTİN: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce İpuçları]

WooCommerce yaygın olarak kullanılan bir modül haline geldi online mağazalar. SEO, ürün, envanter yönetimi, temiz ve sezgisel kod, basit yönetim arayüzü ve Woo için geliştirilen binlerce eklenti, bir çevrimiçi mağaza geliştirmeyi düşündüğünüzde şansa değer olan argümanlardan sadece birkaçıdır.

Herhangi bir CMS gibi, Woo da diğer eklentilerle çeşitli kullanım veya etkileşim senaryolarında meydana gelebilecek tuhaflıkların istisnası değildir. WordPress.
Bir kaynak sunucusunda donanım oldukça cömert, fark ettim veritabanı hizmeti (mysqld) neredeyse% 80-90 RAM gerektirmeye başlar. Oldukça ciddi bir sorun, çünkü 110 numaralı hatanın periyodik olarak nereden geldiğini anlamadım (110] Bağlantı zaman aşımına uğradı).
SQL işlemlerinin daha yakından incelendiğinde, bir veritabanının oldukça büyük hacimli iki tabloya sahip olduğunu buldum: wp_actionscheduler_actions si wp_actionscheduler_logs.

normalde planlanmış eylemler arasında WooCommerce Eylem Zamanlayıcı yürütüldükten sonra otomatik olarak silinmeleri gerekir. Bu her zaman olmaz ve wp_actionsscheduler_actions şu durumla sıkışıp kalırlar: başarısız, iptal edildi, kadar veya tamamlamak.

Yukarıdaki resimde, tablolar "wp_actionsscheduler"Sadece sahipler 15 MB'nin biraz üzerinde. Maalesef ekran görüntüsü almak için ilham almadım 1.2 GB. Yine de, programlanmış eylemleri içeren bir tablo için 15 MB oldukça fazla. WooCommerce.
Bu "şişmiş" tablolar bundan kaynaklanır WP-Cron girişleri silmez statüsü var "başarısız""iptal edildi"Ve"tamamlamak". Normalde bu girişler veri tabanından otomatik olarak silinmelidir.
Planlanan eylemler ve durumları çok kolay ve WooCommerce →  Durum →  Zamanlanmış İşlemler.

Oluklar nasıl temizlenir "başarısız""iptal edildi"Ve"tamamlamak"In wp_actionscheduler_actions si wp_actionscheduler_logs

Veritabanına phpMyAdmin aracılığıyla erişiriz, ardından SQL'de sırayla komut satırlarını çalıştırırız:

DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'

Bu tablo temizlendikten sonra, sorunun çözüldüğü anlamına gelmez. Yukarıda söylediğim gibi, ana neden WP-Cron hizmetinin çeşitli nedenlerle devre dışı bırakılmasıdır. Böylece "zombi" statüsündeki girişler artık silinemez.
Bir çevrimiçi mağazanız olup olmadığını bilmek çok önemlidir. WooCommerceve eklenti aracılığıyla Facebook Mağazalarına bağlanır "için Facebook WooCommerce", ürünleri otomatik olarak senkronize eder. WooCommerce Facebook Mağazaları hesabınızla. Ve bunu her 15 dakikada bir yapıyor. Bu SQL girişleri kontrol edilmezse, birkaç yüz binlerce satır elde edebilirsiniz"wc_facebook_regenerate_feed" içinde "wp_actionscheduler_actions".

Bu aralık, çok sayıda siparişi olan mağazalar için uygundur ve Facebook Mağazaları ürünlerinin stoklarının sürekli güncellenmesi gerekir. Yine de Facebook ile mağazanız arasında bu senkronizasyonların 24 saatte bir yapılabileceğini düşünüyorsanız, aşağıdaki kod satırı yardımcı olabilir.

Temanın functions.php dosyasını açın WordPress / WooCommerce mağazanızın üzerinde çalıştığı ve şunu ekleyin:

add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );

Daha sonra otomatik temizleme için bir haftalık bir aralık belirleyebiliriz:

add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
function wpb_action_scheduler_purge() {
 return WEEK_IN_SECONDS;
}

Bu değişiklikleri kaydettiğinizde, "wp_actionscheduler_actions" için dev tablolarla hiçbir sorun yaşamayacaksınız.

Teknolojiye tutkulu, 2006 yılından beri StealthSettings.com'da yazıyorum. macOS, Windows ve Linux işletim sistemlerinde geniş deneyimim var, aynı zamanda programlama dilleri ve blog platformları (WordPress) ile online mağazalar için (WooCommerce, Magento, PrestaShop) bilgi sahibiyim.

nasıl » Curiosity » BÜYÜK SQL tablolarını DÜZELTİN: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce İpuçları]

1 "BÜYÜK SQL tablolarını DÜZELTİN: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce İpuçları]"

  1. @Stealth
    hjælpen için tak. Du redder min dag og dükkanı. Web mağazası için ilk dette efter ve nedbrud'u seçin. Dumpe deres çıktısında eklentileri yönetin ve dosyaların çıktısını alın… Hans ellers fine opp-tid'de 9.2GB tabel fik min host til. Nu düzeltici jeg med den ince kode!
    Lige et spørgsmål på yanlış rebet denne tabel “wpb_action_scheduler_purge” er det en default db'en eller skal jeg evt. den til noget i min'i yeniden adlandır (default hedder min db ikke 'wp_') eller er det måske en funktion?
    hjælpen og den süper ince makale için Tak

    Saygılarımızla
    netzie

    cevap
Leave a Comment