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 Action Scheduler 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".

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

Über den Autor

Stealth

Mit Leidenschaft für alles Gadget und IT schreibe ich gerne über Stealthsettings.com seit 2006 und ich möchte mit Ihnen neue Dinge über Computer und Betriebssysteme entdecken macBetriebssystem, Linux, Windows, iOS und Android.

Hinterlasse einen Kommentar