Виправити величезні таблиці SQL: WP_Actionscheduler_actions & wp_actionscheduler_logs [Поради WooCommerce]
ВООКУМЕРСЬКА він став дуже використовуваним модулем все більше і більше журнал онлайн. SEO, керування продуктами та запасами, чистий та інтуїтивно зрозумілий код, простий інтерфейс адміністрування та тисячі плагінів, розроблених для Woo, – це лише деякі з причин, чому він заслуговує шансу, коли ви думаєте про створення онлайн-магазину.
Як і будь-яка CMS, Woo не позбавлена дивацтв, які можуть з’явитися в різних сценаріях використання або взаємодії з іншими плагінами WordPress.
На сервері з ресурсами обладнання досить щедро, я це помітив служба баз даних (mysqld) починає запитувати майже 80– 90% оперативної пам'яті. Досить серйозна проблема, тому що я просто не зрозумів звідки періодично виникає помилка 110 (110: Час очікування підключення минув.).
При детальнішому розгляді процесів SQL я виявив, що в одній базі даних є дві таблиці з досить значними обсягами: wp_actionscheduler_actions і wp_actionscheduler_logs.
В моді нормальний заплановані дії але Планувальник дій WooCommerce вони повинні бути видалені автоматично після їх виконання. Це трапляється не завжди, і вони залишаються заблокованими в wp_actionsscheduler_actions зі статусом: не вдалося, скасовано, в очікуванні або повний.
На зображенні вище таблиці “wp_actionsscheduler” вони тільки мають трохи більше 15 Мб. Мені шкода, що я не надихнувся зробити знімок екрана, коли вони це зробили1,2 ГБ. Незважаючи на це, 15 МБ — це досить багато для таблиці, яка містить заплановані дії WooCommerce.
Ці таблиці “НАДУТИЙ” це результат бл WP-Cron не видаляє записи догляд за статусом “не вдалося“, “скасовано” і “повний“. Зазвичай ці записи мають бути автоматично видалені з бази даних.
Запрограмовані дії та їхній статус можна легко побачити в ВООКУМЕРСЬКА →Статус →Заплановані дії.
Як ми чистимо стоки? “не вдалося“, “скасовано” і “повний” Зwp_actionscheduler_actions і wp_actionscheduler_logs
Ми отримуємо доступ до бази даних через phpMyAdmin, потім в SQL по черзі виконуємо командні рядки:
ВИДАЛИТИ З `wp_actionscheduler_actions` WHERE `status` = 'canceled'
ВИДАЛИТИ З `wp_actionscheduler_actions` WHERE `status` = 'complete'
ВИДАЛИТИ З `wp_actionscheduler_actions` WHERE `status` = 'failed'
Якщо цю таблицю очищено, це не означає, що проблему вирішено. Як я вже сказав вище, основною причиною є деактивація служби WP-Cron з різних причин. Таким чином, записи зі статусами “зомбі” їх більше не можна видалити.
Дуже важливо знати, що якщо у вас є інтернет-магазин на WooCommerce, і він підключений до Facebook Shops через плагін “Facebook для WooCommerce“, він автоматично синхронізує продукти WooCommerce з вашим обліковим записом Facebook Shops. І робить це кожні 15 хвилин. Якщо ці записи SQL не контролювати, ви можете отримати кілька сотень тисяч рядків “wc_facebook_regenerate_feed” у “wp_actionscheduler_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');
функція wpb_action_scheduler_purge() {
повернути WEEK_IN_SECONDS;
}
Після збереження цих змін у вас більше не буде проблем із гігантськими таблицями для “wp_actionscheduler_actions”.
Виправити величезні таблиці SQL: WP_Actionscheduler_actions & wp_actionscheduler_logs [Поради WooCommerce]
Що нового
Про Stealth
Пристрасний до технологій, я із задоволенням пишу на Stealthsetts.com, починаючи з 2006 року. У мене багатий досвід роботи в операційних системах: MacOS, Windows та Linux, а також у програмах програмування та платформ ведення блогів (WordPress) та для інтернет -магазинів (WooCommerce, Magento, Presashop).
Переглянути всі дописи від StealthВас також може зацікавити...



Одна думка “Виправити величезні таблиці SQL: WP_Actionscheduler_actions & wp_actionscheduler_logs [Поради WooCommerce]”
@Stealth
Tak for hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Mange plugins er begyndt at dumpe deres output i den tabel og det fylder… Невдоволення столом на 9,2 ГБ змусило мого хоста відмовитися від свого, інакше, прекрасного часу для opp. Тепер я обрізаю гарний код!
Просто питання щодо цього столу з мотузкою “wpb_action_scheduler_purge” це за замовчуванням у базі даних чи мені потрібно перейменувати її на щось у моїй (за умовчанням моя база даних не називається 'wp_’ ) чи, можливо, це функція?
Дякую за допомогу та супер гарну статтю
Привітання
Нетзі