ИСПРАВИТЬ ОГРОМНЫЕ таблицы SQL: wp_actionscheduler_actions и wp_actionscheduler_logs [Советы WooCommerce]

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

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

нормально запланированные действия из Планировщик действий WooCommerce они должны автоматически удаляться после выполнения. Это не всегда происходит, и они застревают в wp_actionsscheduler_actions со статусом: не удалось, отменен, в ожидании или полный.

На изображении выше таблицы "wp_actionsscheduler"У них есть только чуть более 15 МБ. Извините, я не вдохновился сделать снимок экрана, когда у них 1.2 GB. Даже в этом случае 15 МБ достаточно для таблицы, содержащей запрограммированные действия WooCommerce.
Эти «раздутые» таблицы являются результатом того, что WP-Cron не удаляет записи у кого есть статус "не удалось»,«отменен"А"полный«. Обычно эти записи должны автоматически удаляться из базы данных.
Запланированные действия и их состояние можно увидеть очень легко и в WooCommerce →  Статус →  Запланированные действия.

Как почистить водостоки »не удалось»,«отменен"А"полный"В wp_actionscheduler_actions si wp_actionscheduler_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_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' );
function wpb_action_scheduler_purge() {
 return WEEK_IN_SECONDS;
}

После сохранения этих изменений у вас не будет проблем с гигантскими таблицами для "wp_actionscheduler_actions".

Увлечен технологиями, мне нравится тестировать и писать руководства по операционным системам. 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_actionscheduler_actions & wp_actionscheduler_logs [Советы WooCommerce]»

  1. @Stealth
    Так за hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min интернет-магазин. Управляйте плагинами, которые позволяют быстро выводить данные в таблице и в отдельном файле… Работа с таблицами 9.2 Гбайт на минимальном хосте до оптимального уровня. Nu trimmer jeg med den fine kode!
    Lige et spørgsmål på falde rebet denne tabel «wpb_action_scheduler_purge» er det en default я db'en eller skal jeg evt. переименовать den til noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak for hjælpen og den super fine artikel

    С Уважением
    Netzie

    Ответить

Оставьте комментарий