ИЗПРАВЕТЕ ОГРОМНИ SQL таблици: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

WooCommerce той се превърна в широко използван модул онлайн магазини. SEO, продукт, управление на инвентара, чист и интуитивен код, интерфейс adminПрости инструкции и хилядите плъгини, разработени за Woo, са само част от причините, поради които си струва да опитате, когато мислите за разработване на онлайн магазин.

Като всяка CMS, Woo не е изключение от странностите, които могат да възникнат при различни сценарии на използване или взаимодействие с други плъгини. WordPress.
На ресурсен сървър железария доста щедър, забелязах това услуга за бази данни (Mysqld) започва да изисква почти 80-90% RAM. Доста сериозен проблем, защото просто не разбрах откъде периодично идва грешка 110 (110: Времето за свързване изтече).
При по-внимателна проверка на SQL процесите открих, че базата данни има две таблици с доста значителни обеми: wp_actioncheduler_actions si wp_actioncheduler_logs.

нормално планирани действия но Планиращ действие на WooCommerce те трябва да бъдат изтрити автоматично, след като бъдат изпълнени. Това не винаги се случва и те се забиват в wp_actionsscheduler_action със статус: Неуспешно, отменен, в очакване на или завърши.

На изображението по-горе таблиците "wp_actionsscheduler„Те имат само малко над 15 MB. Съжалявам, че не бях вдъхновен да направя екранна снимка, когато те бяха 1.2 GB. Въпреки това 15 MB са достатъчни за таблица, която съдържа програмираните действия на WooCommerce.
Тези "подути" таблици са резултат от това WP-Cron не изтрива записи които имат статус "Неуспешно","отменен"А"завърши“. Обикновено тези записи трябва автоматично да бъдат изтрити от базата данни.
Планираните действия и тяхното състояние могат да се видят много лесно и в WooCommerce →  Статус →  Планирани действия.

Как да почистите улуците "Неуспешно","отменен"А"завърши"В wp_actioncheduler_actions si wp_actioncheduler_logs

Ние осъществяваме достъп до базата данни чрез phpMyAdmin, след това в SQL изпълняваме на свой ред командните редове:

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

След като тази таблица бъде почистена, това не означава, че проблемът е решен. Както казах по-горе, основната причина е деактивирането на услугата WP-Cron по различни причини. По този начин записите със статус „зомби“ вече не могат да бъдат изтрити.
Много е важно да знаете, че ако имате онлайн магазин в WooCommerce и той е свързан с Facebook Shops чрез приставката "Facebook за WooCommerce", Той автоматично синхронизира продуктите на WooCommerce с вашия акаунт във Facebook Shops. И го прави за около 15 минути. Ако тези SQL записи не се контролират, можете да получите няколкостотин хиляди реда. "wc_facebook_regenerate_feed"В"wp_actioncheduler_actions".

Този интервал е подходящ за магазини, които имат голям брой поръчки и запасите от продуктите на Facebook Shops трябва постоянно да се актуализират. Ако все още смятате, че тези синхронизации между Facebook и вашия магазин могат да се извършват веднъж на всеки 24 часа, редът с код по-долу може да помогне.

Отворете файла functions.php на темата WordPress / WooCommerce управлява вашия магазин и добавете:

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

По-долу можем да зададем интервал от една седмица за автоматично почистване:

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

След като запазите тези промени, няма да имате проблеми с гигантски таблици за "wp_actioncheduler_actions".

как да » Любопитство » ИЗПРАВЕТЕ ОГРОМНИ SQL таблици: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

Страстен към технологиите, обичам да тествам и пиша уроци за операционните системи macOS, Linux, Windows, относно WordPress, WooCommerce и конфигурирайте LEMP уеб сървъри (Linux, NGINX, MySQL и PHP). пиша на StealthSettings.com от 2006 г. и няколко години по-късно започнах да пиша в iHowTo.Tips уроци и новини за устройства в екосистемата Apple: iPhone, Ай Пад, Apple Гледайте, HomePod, iMac, MacBook, AirPods и аксесоари.

1 мисъл за „ПОПРАВЯНЕ НА ОГРОМНИ SQL таблици: wp_actionscheduler_actions & wp_actioncheduler_logs [WooCommerce Tips]“

  1. @Stealth
    Така за hjælpen. Du redder min dag og shop. След това ще се възползвате от онлайн магазина. Mange плъгините се извеждат при извеждане на демпфери и се извеждат таблици и детайли ... Разширяването на 9.2 GB табела за минимален хост до прощаване на ханси е добре. Nu trimmer jeg med den fine kode!
    Изтегляне и препращане към фалшиво залагане на табела „wpb_action_scheduler_purge“ е от en en default i db'en eller skal jeg evt. преименувайте den до noget i min (default хедър мин. db ikke 'wp_') дали сте длъжни да използвате функцията?
    Tak за hjælpen og den супер фин артикул

    за разбирането
    Нетзи

    Отговор

Оставете коментар