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

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

Об авторе

Хитрость

Увлечен всем гаджетами и ИТ, с удовольствием пишу на стелсsettings.com с 2006 года, и мне нравится узнавать вместе с вами новые сведения о компьютерах и операционных системах. macОС, Linux, Windows, iOS и Android.

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