ВИПРАВЛЕННЯ ВЕЛИЧЕЗНИХ таблиць SQL: wp_actioncheduler_actions & wp_actioncheduler_logs [Поради WooCommerce]

WooCommerce він став широко використовуваним модулем Інтернет-магазини. SEO, продукт, управління запасами, чистий та інтуїтивно зрозумілий код, інтерфейс adminПрості інструкції та тисячі плагінів, розроблених для 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 через плагін "Facebook для WooCommerce", Він автоматично синхронізує продукти WooCommerce з вашим обліковим записом магазинів Facebook. І робить це приблизно за 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".

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

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

1 думка про “ВИПРАВЛЕННЯ ВЕЛИЧЕЗНИХ таблиць SQL: wp_actioncheduler_action & wp_actioncheduler_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 надзвичайно тонкий артикул

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

    відповісти

Залишити коментар