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

WooCommerce es ist ein weit verbreitetes Modul geworden Online-Shops. SEO, Produkt- und Lagerverwaltung, sauberer und intuitiver Code, eine einfache Verwaltungsoberfläche und die Tausenden von Plugins, die für Woo entwickelt wurden, sind nur einige der Gründe, warum Woo eine Chance verdient, wenn Sie über die Entwicklung eines Online-Shops nachdenken.

Wie jedes CMS ist Woo keine Ausnahme von den Kuriositäten, die in verschiedenen Nutzungs- oder Interaktionsszenarien mit anderen Plugins auftreten können. WordPress.
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. Dennoch sind 15 MB ziemlich viel für eine Tabelle, die die programmierten Aktionen von enthält WooCommerce.
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 →  Status →  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 der Reihe nach die 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, das zu wissen, wenn Sie einen Online-Shop haben WooCommerceund es ist über das Plugin mit Facebook-Shops verbunden.Facebook für WooCommerce", es synchronisiert automatisch die Produkte von WooCommerce mit Ihrem Facebook-Shops-Konto. Und das tut er alle 15 Minuten. Wenn diese SQL-Einträge nicht kontrolliert werden, können mehrere Hunderttausend Zeilen entstehen.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 Designs WordPress / WooCommerce auf dem Ihr Shop läuft, und fügen Sie 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, schreibe ich seit 2006 gerne auf StealthSettings.com. Ich habe reichhaltige Erfahrung in Betriebssystemen: macOS, Windows und Linux, sowie in Programmiersprachen und Blogging-Plattformen (WordPress) und für Online-Shops (WooCommerce, Magento, PrestaShop).

So erreichen » Neugier » FIX RIESIGE SQL-Tabellen: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tipps]

1 Gedanke zu „RIESIGE SQL-Tabellen reparieren: 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?
    Nehmen Sie für hjælpen og den super fine artikel

    Grüße
    Netie

    antworten
Hinterlasse einen Kommentar