CORRIGIR tabelas SQL ENORMES: wp_actionscheduler_actions e wp_actionscheduler_logs [Dicas WooCommerce]

WooCommerce tornou-se um módulo amplamente utilizado lojas on-line. SEO, produto, gerenciamento de estoque, código limpo e intuitivo, interface de administração simples e milhares de plugins desenvolvidos para Woo, são apenas alguns dos argumentos pelos quais vale a pena tentar quando você pensa em desenvolver uma loja online.

Como qualquer CMS, Woo não é exceção às estranhezas que podem ocorrer em diferentes cenários de uso ou interação com outros plug-ins do WordPress.
Em um servidor de recursos Hardware bastante generoso, notei que serviço de banco de dados (mysqld) começa a exigir quase 80-90% de RAM. Um problema muito sério, porque eu simplesmente não entendia de onde vem o erro 110 periodicamente (110: Conexão expirou).
Em uma inspeção mais detalhada dos processos SQL, descobri que um banco de dados tem duas tabelas com volumes bastante grandes: wp_actionscheduler_actions si wp_actionscheduler_logs.

normalmente ações programadas de Agendador de ações WooCommerce eles devem ser excluídos automaticamente após serem executados. Isso nem sempre acontece e eles ficam presos em wp_actionsscheduler_actions com o status: fracassado, cancelado, pendente ou completar.

Na imagem acima, as tabelas "wp_actionsscheduler"Eles só têm pouco mais de 15 MB. Lamento não ter sido inspirado a fazer uma captura de tela quando eles 1.2 GB. Mesmo assim, 15 MB são suficientes para uma tabela que contém as ações programadas do WooCommerce.
Essas tabelas "inchadas" resultam disso WP-Cron não exclui entradas quem tem status "fracassado","cancelado"E"completar“. Normalmente, essas entradas devem ser excluídas automaticamente do banco de dados.
As ações programadas e seu estado podem ser vistos muito facilmente e em WooCommerce →  Status →  Ações agendadas.

Como limpar as calhas "fracassado","cancelado"E"completar"em wp_actionscheduler_actions si wp_actionscheduler_logs

Acessamos o banco de dados através do phpMyAdmin, então no SQL executamos as linhas de comando sucessivamente:

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

Depois de limpar a mesa, isso não significa que o problema foi resolvido. Como eu disse acima, a principal causa é a desativação do serviço WP-Cron por vários motivos. Assim, as entradas com o status "zumbi" não podem mais ser excluídas.
É muito importante saber que se você tem uma loja online no WooCommerce e ela está conectada ao Facebook Shops através do plugin "Facebook para WooCommerce", Ele sincroniza automaticamente os produtos WooCommerce com sua conta do Facebook Shops. E ele faz isso em cerca de 15 minutos. Se essas entradas SQL não forem controladas, você pode obter várias centenas de milhares de linhas. "wc_facebook_regenerate_feed"Em"wp_actionscheduler_actions".

Este intervalo é adequado para lojas que possuem um grande número de pedidos e o estoque de produtos das Lojas do Facebook precisa ser atualizado constantemente. Se você ainda acha que essas sincronizações entre o Facebook e sua loja podem ser feitas uma vez a cada 24 horas, a linha de código abaixo pode ajudar.

Abra o arquivo functions / php do tema WordPress / WooCommerce no qual sua loja está funcionando e adicione:

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

A seguir, podemos definir um intervalo de uma semana para a limpeza automática:

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

Depois de salvar essas alterações, você não terá problemas com tabelas gigantes para "wp_actionscheduler_actions".

Apaixonado por tecnologia, gosto de testar e escrever tutoriais sobre sistemas operacionais macOSLinux, Windows, sobre configuração de servidores web WordPress, WooCommerce e LEMP (Linux, NGINX, MySQL e PHP). Eu escrevo em StealthSettings.com desde 2006, e alguns anos depois, comecei a escrever no iHowTo.Tips tutoriais e notícias sobre dispositivos no ecossistema Apple: iPhone, iPad, Apple Assistir, HomePod, iMac, MacBook, AirPods e acessórios.

Pensei em “CORRIGIR tabelas ENORMES SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [Dicas WooCommerce]”

  1. @Stealth
    Tak para hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Os plug-ins do Mange são iniciados e executados na saída de dados na tabela og det fylder… Wooping 9.2 GB tabela fik min host até a 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 i db'en eller skal jeg evt. renomear den até noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak para hjælpen og den super fine artikel

    Cumprimentos
    Netzie

    Resposta

Deixe um comentário