BÜYÜK SQL tablolarını DÜZELT: 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, farklı kullanım senaryolarında veya diğer WordPress eklentileriyle etkileşimde ortaya çıkabilecek tuhaflıkların bir istisnası değildir.
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 Planlayı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, WooCommerce'in planlanmış eylemlerini içeren bir tablo için 15 MB yeterlidir.
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.
WooCommerce'da bir çevrimiçi mağazanız varsa ve eklenti aracılığıyla Facebook Mağazalarına bağlıysa, bunu bilmek çok önemlidir "WooCommerce için Facebook", WooCommerce ürünlerini otomatik olarak Facebook Mağazalar hesabınızla senkronize eder. Ve bunu yaklaşık 15 dakika içinde yapıyor. Bu SQL girişleri kontrol edilmezse, birkaç yüz bin 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.

Mağazanızın üzerinde çalıştığı WordPress / WooCommerce temasının işlevlerini / php dosyasını açın ve 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.

Teknoloji konusunda tutkulu, işletim sistemleri hakkında test etmeyi ve öğreticiler yazmayı seviyorum macOSLinux Windows, WordPress, WooCommerce ve LEMP web sunucusu yapılandırması hakkında (Linux, NGINX, MySQL ve PHP). üzerine yazıyorum StealthSettings.com'da 2006'dan beri ve birkaç yıl sonra, ekosistemdeki cihazlar hakkında iHowTo.Tips eğitimleri ve haberleri yazmaya başladım. Apple: iPhoneiPad, Apple İzle, HomePod, iMac, MacBook, AirPod'lar ve aksesuarlar.

“BÜYÜK SQL tablolarını DÜZELTİN: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce İpuçları]” üzerine 1 düşünce

  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