Action Scheduler di WooCommerce: quando il database cresce troppo e perché conviene fare pulizia

Action Scheduler Di Woocommerce: Quando Il Database Cresce Troppo E Perché Conviene Fare Pulizia

Chi gestisce un sito WooCommerce da qualche anno potrebbe essersi imbattuto in alcune tabelle del database dai nomi poco rassicuranti, come actionscheduler_actions o actionscheduler_logs.

In alcuni casi queste tabelle raggiungono dimensioni considerevoli, arrivando a contenere decine o centinaia di migliaia di record. Ma cosa sono? Si possono eliminare? E soprattutto: perché continuano a crescere?

La risposta è legata ad Action Scheduler, uno dei meccanismi utilizzati da WooCommerce e da numerosi plugin per eseguire operazioni in background.

Cos’è Action Scheduler

Action Scheduler è una libreria per la gestione di attività programmate e asincrone all’interno di WordPress.

WooCommerce la utilizza per numerose operazioni che non devono necessariamente essere eseguite durante il caricamento di una pagina. Anche molti plugin che interagiscono con WooCommerce sfruttano lo stesso sistema.

Tra le attività che possono passare attraverso Action Scheduler troviamo, ad esempio:

  • elaborazioni e operazioni periodiche di WooCommerce;
  • sincronizzazioni con servizi esterni;
  • webhook;
  • aggiornamenti e importazioni;
  • invio di determinate comunicazioni;
  • attività programmate da plugin aggiuntivi.

Ogni operazione viene registrata nel database insieme al proprio stato e alle informazioni necessarie alla sua esecuzione.

Ed è proprio qui che, con il passare del tempo, può nascere il problema.

Perché actionscheduler_actions può diventare enorme

Un e-commerce attivo può eseguire moltissime azioni ogni giorno.

Una parte di queste viene completata correttamente, altre possono fallire, essere annullate oppure essere riprogrammate. Il database conserva le informazioni relative a queste operazioni nelle tabelle dedicate ad Action Scheduler.

Su un sito utilizzato da anni, soprattutto se sono stati installati diversi plugin, il numero di record può quindi diventare molto elevato.

Il problema diventa particolarmente evidente quando si analizzano le dimensioni del database e si scopre che tabelle come:

actionscheduler_actions

actionscheduler_logs

occupano una quantità di spazio sproporzionata rispetto al resto dell’installazione WordPress.

Un database più grande non significa necessariamente un sito più lento

È importante non cadere nell’equazione automatica:

tabella grande = sito lento.

Non è sempre così.

MySQL è perfettamente in grado di gestire tabelle con moltissimi record. Tuttavia, un accumulo anomalo di azioni può diventare il sintomo di qualcosa che merita di essere analizzato.

Può rendere più pesanti alcune operazioni sul database, aumentare le dimensioni dei backup e complicare migrazioni, esportazioni e interventi di manutenzione.

Soprattutto, però, una crescita continua può indicare che un plugin sta generando molte più attività del previsto oppure che alcune azioni stanno fallendo ripetutamente.

Per questo motivo cancellare semplicemente tutto non è necessariamente la soluzione migliore.

Prima di pulire bisogna capire cosa sta succedendo

Quando incontro una tabella Action Scheduler particolarmente grande, la prima domanda non è “come la svuoto?”, ma:

“chi sta creando tutte queste azioni?”

WooCommerce non è infatti necessariamente il responsabile diretto.

Plugin per newsletter, sincronizzazioni di cataloghi, feed, gestionali, sistemi di pagamento, integrazioni con CRM, webhook e numerosi altri servizi possono utilizzare Action Scheduler.

Analizzare le azioni presenti permette quindi di capire quali processi ne stanno producendo di più e se il loro numero è compatibile con il normale funzionamento del sito.

In particolare, una quantità elevata di azioni fallite merita sempre qualche indagine in più.

Quali azioni possono essere eliminate?

Action Scheduler distingue le operazioni attraverso diversi stati.

Un’azione può essere, ad esempio, completata, fallita, annullata, in attesa oppure attualmente in esecuzione.

Una manutenzione corretta deve tenere conto di queste differenze.

Le vecchie operazioni ormai concluse possono generalmente essere oggetto di pulizia, mentre eliminare indiscriminatamente le attività ancora in attesa o in esecuzione può interferire con il funzionamento di WooCommerce o dei plugin che le hanno programmate.

Per questo motivo sconsiglio di svuotare direttamente le tabelle dal database senza prima averne analizzato il contenuto.

E le altre tabelle actionscheduler_*?

actionscheduler_actions non è l’unica tabella coinvolta.

Action Scheduler utilizza diverse tabelle correlate per conservare informazioni sulle azioni, sui gruppi, sui processi che le stanno elaborando e sui relativi log.

Una pulizia effettuata direttamente via database senza considerare queste relazioni può lasciare dati inutili o incoerenti.

È quindi preferibile affrontare la manutenzione di Action Scheduler come un insieme, anziché considerare solamente la tabella che occupa più spazio.

Quando conviene intervenire?

Non esiste una dimensione oltre la quale sia obbligatorio effettuare una pulizia.

Su un WooCommerce con molto traffico e numerosi ordini è perfettamente normale avere più attività rispetto a un piccolo negozio online.

Ci sono però alcuni segnali che meritano attenzione: un database che aumenta rapidamente di dimensione, backup sempre più pesanti, moltissime azioni fallite, code che continuano ad accumularsi o tabelle Action Scheduler che rappresentano una parte significativa dell’intero database.

In questi casi vale la pena capire cosa sta generando l’accumulo prima ancora di decidere cosa cancellare.

Pulire sì, ma soprattutto prevenire

Una pulizia periodica può essere utile sui siti WooCommerce più longevi, ma il vero obiettivo dovrebbe essere evitare che il problema si ripresenti continuamente.

Se una tabella viene alleggerita oggi e dopo poche settimane contiene nuovamente centinaia di migliaia di record, probabilmente la pulizia sta solamente nascondendo la causa.

Un controllo periodico del database permette invece di individuare plugin che generano un numero anomalo di processi, errori ricorrenti e integrazioni che continuano a programmare attività senza riuscire a completarle.

La manutenzione del database fa parte della manutenzione di WooCommerce

Quando si parla di manutenzione WordPress si pensa normalmente ad aggiornamenti, backup, sicurezza e performance.

Il database viene spesso dimenticato.

Su siti WooCommerce attivi da molti anni, invece, controllare periodicamente ciò che si accumula nel database può evitare di ritrovarsi con installazioni inutilmente pesanti e può soprattutto aiutare a individuare problemi che altrimenti rimarrebbero nascosti.

Action Scheduler è un ottimo esempio: non è qualcosa da eliminare, ma uno strumento da tenere sotto controllo.

E quando le sue tabelle iniziano a crescere in maniera anomala, prima di premere il metaforico pulsante “Svuota tutto”, vale la pena scoprire chi sta riempiendo il cestino.

Se l’argomento ti interessa, contattami.

Richiedi informazioni

Raccontami il tuo progetto, tracking, accessibilità, campagne adv da sistemare o semplicemente un sito che non vuol saperne di funzionare. Insieme possiamo migliorarlo.

    Accetto la Privacy Policy
    Autorizzo al trattamento dei miei dati personali, per ricevere le informazioni richieste attraverso questo modulo di contatto. I dati da te inseriti attraverso questo modulo verranno utilizzati solo per essere da me ricontattato.

    Recensioni

    Scrivimi una recensione

    Questo QR Code ti permette di lasciarmi una recensione in maniera facile e veloce.

    Altrimenti usa il bottone qui sotto.

    Lascia una recensione su Google