CORREGGERE ENORMI tabelle SQL: wp_actionscheduler_actions e wp_actionscheduler_logs [WooCommerce Suggerimenti]

WooCommerce è diventato un modulo ampiamente utilizzato negozi on-line. Gestione SEO, prodotto, gestione dell'inventario, codice pulito e intuitivo, semplice interfaccia di amministrazione e migliaia di plugin sviluppati per Woo, sono solo alcuni degli argomenti per i quali vale la pena provare quando si pensa di sviluppare un negozio online.

Come qualsiasi CMS, Woo non fa eccezione alle stranezze che possono verificarsi in vari scenari di utilizzo o interazione con altri plugin. WordPress.
Su un server di risorse hardware abbastanza generoso, l'ho notato servizio di database (mysqld) inizia a richiedere quasi l'80-90% di RAM. Un problema piuttosto serio, perché non ho capito da dove viene periodicamente l'errore 110 (110: connessione scaduta).
A un esame più attento dei processi SQL, ho scoperto che un database ha due tabelle con volumi abbastanza grandi: wp_azionischeduleer_azioni si wp_actionscheduler_logs.

normalmente azioni pianificate di WooCommerce Pianificatore di azioni dovrebbero essere cancellati automaticamente dopo essere stati eseguiti. Questo non accade sempre e rimangono bloccati in wp_actionsscheduler_actions con lo stato: mancato, annullato, in attesa di o completamento di una.

Nell'immagine sopra, le tabelle "wp_actionsscheduler"Hanno solo poco più di 15 MB. Mi dispiace di non essere stato ispirato a fare uno screenshot quando lo avevano fatto 1.2 GB. Anche così, 15 MB sono parecchi per una tabella che contiene le azioni programmate di WooCommerce.
Queste tabelle "gonfie" derivano da questo WP-Cron non elimina le voci che hanno lo status "mancato","annullato"E"completamento di una“. Normalmente queste voci dovrebbero essere cancellate automaticamente dal database.
Le azioni programmate e il loro stato possono essere visualizzati molto facilmente e in formato WooCommerce →  Stato dei servizi →  Azioni programmate.

Come pulire le grondaie "mancato","annullato"E"completamento di una"In wp_azionischeduleer_azioni si wp_actionscheduler_logs

Accediamo al database tramite phpMyAdmin, quindi in SQL eseguiamo a turno le righe di comando:

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

Una volta che questa tabella è stata pulita, non significa che il problema sia stato risolto. Come ho detto sopra, la causa principale è la disabilitazione del servizio WP-Cron per vari motivi. Pertanto le voci con lo stato "zombie" non possono più essere cancellate.
È molto importante sapere che se hai un negozio online su WooCommerce, ed è collegato a Facebook Shops tramite il plugin "Facebook per WooCommerce", sincronizza automaticamente i prodotti da WooCommerce con il tuo account Facebook Shops. E lo fa ogni 15 minuti. Queste voci SQL se non controllate, puoi ottenere diverse centinaia di migliaia di righe"wc_facebook_regenerate_feed" nel "wp_azionischeduleer_azioni".

Questo intervallo va bene per i negozi che hanno un numero elevato di ordini e lo stock dei prodotti dei negozi di Facebook deve essere costantemente aggiornato. Se pensi ancora che queste sincronizzazioni tra Facebook e il tuo negozio possano essere eseguite ogni 24 ore, la riga di codice qui sotto può aiutarti.

Apri il file functions.php del tema WordPress / WooCommerce su cui gira il tuo negozio e aggiungi:

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

Successivamente possiamo impostare un intervallo di una settimana per la pulizia automatica:

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

Una volta salvate queste modifiche, non avrai problemi con le tabelle giganti per "wp_actionscheduler_actions".

Appassionato di tecnologia, scrivo con piacere su StealthSettings.com dal 2006. Ho un'ampia esperienza nei sistemi operativi: macOS, Windows e Linux, nonché nei linguaggi di programmazione e nelle piattaforme di blogging (WordPress) e per i negozi online (WooCommerce, Magento, PrestaShop).

Come » Curiosity » CORREGGERE ENORMI tabelle SQL: wp_actionscheduler_actions e wp_actionscheduler_logs [WooCommerce Suggerimenti]

1 pensiero su "FIX ENORME tabelle SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Suggerimenti]"

  1. @Stealth
    Prendi per hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Gestire i plug-in e iniziare e scaricare l'output nella tabella e nel campo successivo... Wooping da 9.2 GB di tabella fino a quando non si ha l'opgive hans ellers bene opp-tid. Nu trimmer jeg med den fine kode!
    Leggere e spørgsmål på falde rebet denne table “wpb_action_scheduler_purge” default i db'en eller skal jeg evt. rinomina den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak per hjælpen og den bene artikel eccellente

    Saluti
    Rete

    Rispondi
Lascia un tuo commento