FIX RIESIGE SQL-Tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce-Tipps]

WooCommerce es ist ein weit verbreitetes Modul geworden Online-Shops. SEO, Produkt-, Bestandsverwaltung, sauberer und intuitiver Code, einfache Verwaltungsoberfläche und Tausende von Plugins, die für Woo entwickelt wurden, sind nur einige der Argumente, für die es sich lohnt, einen Online-Shop zu entwickeln.

Wie jedes CMS ist Woo keine Ausnahme von den Kuriositäten, die in verschiedenen Szenarien der Verwendung oder Interaktion mit anderen WordPress-Plugins auftreten können.
Auf einem Ressourcenserver Hardware ziemlich großzügig, das habe ich bemerkt Datenbankdienst (mysqld) benötigt fast 80-90% des Arbeitsspeichers. Ein ziemlich ernstes Problem, weil ich einfach nicht verstanden habe, woher der Fehler 110 regelmäßig kommt (110] Verbindungszeitüberschreitung).
Bei näherer Betrachtung der SQL-Prozesse stellte ich fest, dass eine Datenbank zwei Tabellen mit relativ großen Volumes enthält: wp_actionscheduler_actions si wp_actionscheduler_logs.

normalerweise geplante Aktionen von WooCommerce-Aktionsplaner Sie sollten nach ihrer Ausführung automatisch gelöscht werden. Dies passiert nicht immer und sie bleiben in wp_actionsscheduler_actions mit dem Status stecken: gescheitert, abgebrochen, schwebend oder abschließen.

Im Bild oben sind die Tabellen "wp_actionsscheduler"Sie haben nur etwas mehr als 15 MB. Es tut mir leid, dass ich nicht dazu inspiriert war, einen Screenshot zu machen, als sie es getan hatten 1.2 GB. Trotzdem reichen 15 MB für eine Tabelle aus, die die geplanten Aktionen von WooCommerce enthält.
Daraus resultieren diese "geschwollenen" Tabellen WP-Cron löscht keine Einträge die Status haben "gescheitert","abgebrochen"Und"abschließen“. Normalerweise sollten diese Einträge automatisch aus der Datenbank gelöscht werden.
Die geplanten Aktionen und ihr Status können sehr einfach und in angezeigt werden WooCommerce →  Kategorie →  Geplante Aktionen.

So reinigen Sie die Dachrinnen "gescheitert","abgebrochen"Und"abschließen"Im wp_actionscheduler_actions si wp_actionscheduler_logs

Wir greifen über phpMyAdmin auf die Datenbank zu und führen dann in SQL nacheinander die folgenden Befehlszeilen aus:

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

Sobald diese Tabelle bereinigt ist, bedeutet dies nicht, dass das Problem behoben ist. Wie oben erwähnt, ist die Hauptursache die Deaktivierung des WP-Cron-Dienstes aus verschiedenen Gründen. Somit können Einträge mit dem Status "Zombie" nicht mehr gelöscht werden.
Es ist sehr wichtig zu wissen, dass, wenn Sie einen Online-Shop auf WooCommerce haben und dieser über das Plugin mit Facebook-Shops verbunden ist. "Facebook für WooCommerce", Es synchronisiert automatisch WooCommerce-Produkte mit Ihrem Facebook Shops-Konto. Und er schafft es in ungefähr 15 Minuten. Wenn diese SQL-Einträge nicht gesteuert werden, können Sie mehrere hunderttausend Zeilen erhalten. "wc_facebook_regenerate_feed"In"wp_actionscheduler_actions".

Dieses Intervall ist für Geschäfte mit einer großen Anzahl von Bestellungen in Ordnung, und der Bestand an Facebook Shops-Produkten muss ständig aktualisiert werden. Wenn Sie immer noch der Meinung sind, dass diese Synchronisierungen zwischen Facebook und Ihrem Shop alle 24 Stunden durchgeführt werden können, kann die folgende Codezeile hilfreich sein.

Öffnen Sie die Datei functions / php des WordPress / WooCommerce-Themas, auf dem Ihr Shop ausgeführt wird, und fügen Sie Folgendes hinzu:

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

Als nächstes können wir ein Intervall von einer Woche für die automatische Reinigung einstellen:

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

Sobald Sie diese Änderungen gespeichert haben, haben Sie keine Probleme mit riesigen Tabellen für "wp_actionscheduler_actions".

Technikbegeistert teste und schreibe ich gerne Tutorials zu Betriebssystemen about macOSLinux, Windows, über WordPress, WooCommerce und LEMP Webserver-Konfiguration (Linux, NGINX, MySQL und PHP). ich schreibe weiter StealthSettings.com seit 2006, und ein paar Jahre später begann ich, auf iHowTo.Tips Tutorials und Neuigkeiten über Geräte im Ökosystem zu schreiben Apple: iPhoneiPad Apple Uhr, HomePod, iMac, MacBook, AirPods und Zubehör.

1 Gedanke zu „RIESIGE SQL-Tabellen FIXIEREN: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce-Tipps]“

  1. @Stealth
    Tak für hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min Webshop. Mange plugins er begyndt bei Dumpe deres Output in den Tabellen und det Fylder… Wooping 9.2GB tabel fik min host bis zu opgive hansellers fine opp-tid. Nu Trimmer jeg med den feinen Kode!
    Lige et spørgsmål på falde rebet dennne tabel „wpb_action_scheduler_purge“ er det en default i db'en eller skal jeg evt. umbenennen den til noget ich min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak for hjælpen og den super fine artikel

    Grüße
    Netzie

    antworten

Hinterlasse einen Kommentar