ВИПРАВИТИ ВЕЛИЧЕЗНІ таблиці SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Поради]

WooCommerce він став широко використовуваним модулем Інтернет-магазини. SEO, продукт, управління запасами, чистий та інтуїтивно зрозумілий код, простий інтерфейс адміністрування та тисячі плагінів, розроблених для Woo, - лише деякі аргументи, заради яких варто шансувати, коли ви думаєте про розробку інтернет-магазину.

Як і будь-яка CMS, Woo не є винятком з дивацтва, які можуть виникати в різних сценаріях використання або взаємодії з іншими плагінами. WordPress.
На сервері ресурсів апаратні засоби досить щедрий, я це помітив служба баз даних (туздИ) починає вимагати майже 80-90% оперативної пам'яті. Досить серйозна проблема, тому що я просто не розумів, звідки періодично виникає помилка 110 (110: Час очікування підключення).
При детальному вивченні процесів SQL я виявив, що база даних має дві таблиці з досить великими обсягами: wp_actioncheduler_actions si wp_actioncheduler_logs.

нормально заплановані дії з WooCommerce Планувальник дій їх слід автоматично видалити після їх виконання. Це трапляється не завжди, і вони застряють у wp_actionsscheduler_action зі статусом: не вдалося, скасовано, в очікуванні або повний.

На зображенні вище таблиці "wp_actionsscheduler"Вони лише мають трохи більше 15 МБ. Мені шкода, що я не надихнувся зробити скріншот, коли вони це зробили 1.2 GB. Незважаючи на це, 15 Мб — це досить багато для таблиці, яка містить запрограмовані дії 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_action".

Захоплений технологіями, з 2006 року з радістю пишу на StealthSettings.com. Маю багаторічний досвід роботи з операційними системами: macOS, Windows і Linux, а також з мовами програмування і платформами для блогів (WordPress) та онлайн-магазинів (WooCommerce, Magento, PrestaShop).

Як записатися » допитливість » ВИПРАВИТИ ВЕЛИЧЕЗНІ таблиці SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Поради]

1 думка про «ВИПРАВЛЕННЯ ВЕЛИЧЕЗНИХ таблиць SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Поради]"

  1. @Stealth
    Так за hjælpen. Du redder min dag og shop. Отримайте відповідь на цю тему після закінчення веб-магазину. Плагіни Mange починаються з виведення дамп-файлів у таблиці та файлах… Переміщення 9.2 ГБ табл. Мін. Хосту до вибачливих додатків. Nu trimmer jeg med den fine kode!
    Перейдіть на сторінку з помилковим перезаписом у таблиці "wpb_action_scheduler_purge" і натисніть тут default я db'en eller skal jeg evt. перейменовувати день до початку i min (default hedder min db ikke 'wp_') чи ви не маєте жодної функції?
    Так для hjælpen og den надзвичайно тонкий артикул

    З повагою
    Нетзі

    відповісти
Залишити коментар