CORRECTIFS ÉNORMES tables SQL : wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Conseils]

WooCommerce c'est devenu un module largement utilisé boutiques en ligne. SEO, produit, gestion des stocks, code propre et intuitif, interface d'administration simple et des milliers de plugins développés pour Woo, ne sont que quelques-uns des arguments pour lesquels il vaut la peine de tenter le développement d'une boutique en ligne.

Comme tout CMS, Woo ne fait pas exception aux bizarreries qui peuvent survenir dans divers scénarios d'utilisation ou d'interaction avec d'autres plugins. WordPress.
Sur un serveur de ressources matériel assez généreux, j'ai remarqué que service de base de données (mysqld) commence à nécessiter près de 80 à 90% de RAM. Un problème assez grave, car je ne comprenais tout simplement pas d'où venait périodiquement l'erreur 110 (110: la connexion a expiré).
En examinant de plus près les processus SQL, j'ai trouvé qu'une base de données contient deux tables avec des volumes assez importants: wp_actionscheduler_actions si wp_actionscheduler_logs.

normalement, actions planifiées de WooCommerce Planificateur d'actions ils doivent être supprimés automatiquement après leur exécution. Cela ne se produit pas toujours, et ils restent bloqués dans wp_actionsscheduler_actions avec le statut: manqué, annulé, En attente ou complet.

Dans l'image ci-dessus, les tableaux "wp_actionsscheduler"Ils ont seulement un peu plus de 15 Mo. Je suis désolé de ne pas avoir été inspiré pour prendre une capture d'écran alors qu'ils avaient 1.2 GB. 15 Mo c'est quand même beaucoup pour un tableau qui contient les actions programmées de WooCommerce.
Ces tableaux "gonflés" résultent de cela WP-Cron ne supprime pas les entrées qui ont un statut "manqué","annulé"Et"complet«. Normalement, ces entrées doivent être automatiquement supprimées de la base de données.
Les actions programmées et leur état peuvent être vus très facilement et en WooCommerce →  Statut →  Actions planifiées.

Comment nettoyer les gouttières "manqué","annulé"Et"complet"en wp_actionscheduler_actions si wp_actionscheduler_logs

Nous accédons à la base de données via phpMyAdmin, puis chez SQL nous exécutons les lignes de commande à tour de rôle:

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

Une fois cette table nettoyée, cela ne signifie pas que le problème est résolu. Comme je l'ai dit ci-dessus, la cause principale est la désactivation du service WP-Cron pour diverses raisons. Ainsi, les entrées avec le statut "zombie" ne peuvent plus être supprimées.
Il est très important de savoir que si vous avez une boutique en ligne sur WooCommerce, et il est connecté aux boutiques Facebook via le plugin "Facebook pour WooCommerce", il synchronise automatiquement les produits de WooCommerce avec votre compte Facebook Shops. Et il le fait toutes les 15 minutes. Ces entrées SQL si elles ne sont pas contrôlées, vous pouvez obtenir plusieurs centaines de milliers de lignes"wc_facebook_regenerate_feed"Dans"wp_actionscheduler_actions" .

Cet intervalle est acceptable pour les magasins qui ont un grand nombre de commandes et le stock de produits Facebook Shops doit être constamment mis à jour. Si vous pensez toujours que ces synchronisations entre Facebook et votre boutique peuvent être effectuées une fois toutes les 24 heures, la ligne de code ci-dessous peut vous aider.

Ouvrez le fichier functions.php du thème WordPress / WooCommerce sur lequel fonctionne votre boutique et ajoutez :

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

Ci-dessous, nous pouvons définir un intervalle d'une semaine pour le nettoyage automatique:

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

Une fois que vous avez enregistré ces modifications, vous n'aurez aucun problème avec les tables géantes pour "wp_actionscheduler_actions".

Passionné par la technologie, j'écris avec plaisir sur StealthSettings.com depuis 2006. J'ai une expérience approfondie dans les systèmes d'exploitation : macOS, Windows et Linux, ainsi que dans les langages de programmation et les plates-formes de blogging (WordPress) et pour les boutiques en ligne (WooCommerce, Magento, PrestaShop).

Comment » Curiosité » CORRECTIFS ÉNORMES tables SQL : wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Conseils]

1 réflexion sur "RÉPARER D'ÉNORMES tables SQL : wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Conseils]"

  1. @Stealth
    Prenez pour hjælpen. Du redder min dag og shop. Jeg opdagede first dette efter et nedbrud af min boutique en ligne. Mange plugins er begyndt at dumpe deres output i den tabel og det fylder… Wooping 9.2GB tabel fik min host til at opgive hans ellers fine opp-tid. Nu trimmer jeg med den fine kode!
    Lige et spørgsmål på falde rebet denne table « wpb_action_scheduler_purge » default je db'en eller skal jeg evt. renommer den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Merci pour l'aide et le super article

    Salutations
    Réseau

    Répondre
Laisser un commentaire