Исправить огромные таблицы SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [woocommerce tips]

Woocommerce стал очень используемым модулем все больше и больше Журнал онлайн. СеоУправление продуктами, акциями, чистым и интуитивно понятным кодом, простой интерфейсом администрирования и тысячами плугов, разработанных для WOO, являются лишь несколькими аргументами, за которые он заслуживает шанса, когда вы думаете о разработке интернет -магазина.

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

В нормальном моде запланированные действия но Woocommerce Action Scheduler Это должно быть удалено автоматически после их выполнения. Это не всегда происходит, и они остаются заблокированными в wp_actionschedier_actions со статусом: неуспешный, отменен, в ожидании или полный.

На изображении над таблицами “wp_actionsscheduler” У них есть только чуть более 15 МБПолем Мне жаль, что я не был вдохновлен сделать снимок экрана, когда они1,2 ГБПолем Несмотря на это, 15 МБ достаточно для таблицы, которая содержит запрограммированные действия Woocommerce.
Эти таблицы “Раздутый” приводит к WP-Cron не удаляет входы заботиться о статусе “неуспешный,отменен” и “полный“Полем Обычно эти входы должны быть автоматически удалены из базы данных.
Запланированные действия и их состояние мы можем увидеть это очень легко и в WoocommerceСтатусЗапланированные действия.

Как мы чистим заперты “неуспешный,отменен” и “полный” ОТwp_actionscheduler_actions и wp_actionscheduler_logs

Мы получаем доступ к базе данных через PhpMyAdmin, затем в SQL мы выполняем командные строки:

УДАЛИТЬ ИЗ `wp_actionscheduler_actions` ГДЕ `status` = 'отменено'
УДАЛИТЬ ИЗ `wp_actionscheduler_actions` ГДЕ `status` = 'complete'
УДАЛИТЬ ИЗ `wp_actionscheduler_actions` ГДЕ `status` = 'failed'

Как только эта таблица очищена, это не означает, что проблема решается. Как я уже говорил выше, основная причина состоит в том, чтобы деактивировать по различным причинам службы WP-Chron. Таким образом, записи со статусами “зомби” Они больше не могут быть стерты.
Очень важно знать, что если у вас есть интернет -магазин на Wocommerce, и он подключен к магазинам Facebook через плагин “Facebook для Woocommerce“, он автоматически синхронизирует продукты WooCommerce с вашей учетной записью Facebook Shops. И это происходит около 15 минут. Эти входы SQL, если не управляются, вы можете получить несколько сотен тысяч линий “wc_facebook_regenerate_feed” в “wp_actionscheduler_actions“.

Этот интервал в порядке для магазинов, которые имеют большое количество заказов, и необходимо постоянно обновлять запасы магазинов Facebook. Если вы все еще рассматриваете эту синхронизацию из Facebook, и ваш магазин можно делать каждые 24 часа, приведенная ниже строка кода может помочь вам.

Откройте файл функций.

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”.

Увлеченными технологиями, я с удовольствием пишу на stealthsetts.com, начиная с 2006 года. У меня богатый опыт работы в операционных системах: macOS, Windows и Linux, а также в языках программирования и платформах для блога (WordPress) и для интернет -магазинов (WooCommerce, Magento, Presashop).

Дом Ваш источник его учебников, полезных советов и новостей. Исправить огромные таблицы SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [woocommerce tips]

1 думал о "Исправить огромные таблицы SQL: wp_actionscheduler_actions & wp_actionscheduler_logs [woocommerce tips]”

  1. @Stealth
    Спасибо за помощь. Вы спасаете мой день и делаете покупки. Я впервые обнаружил это после сбоя моего веб -магазина. Многие плагины начали сбрасывать свои результаты в этой таблице, и он заполняет… Таблица Wooping 9,2 ГБ заставила моего хозяина отказаться от своего прекрасного времени в ГЧП. Теперь я обрезаю прекрасным кодом!
    Просто вопрос о падении веревки в этом столе “wpb_action_scheduler_purge” Это по умолчанию в БД или, возможно, я должен. Переименовать это до чего -то в моем (по умолчанию мой DB не 'wp_’ ) или это функция?
    Спасибо за помощь и супер хорошую статью

    Приветствие
    Нетто

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