ИСПРАВИТЬ ОГРОМНЫЕ таблицы 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 через плагин "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".

Поклонник технологий, с 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. 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

    С Уважением
    Netz

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