zaLinux.ru

Как посмотреть и очистить очередь Cron в WordPress


Запланированные задачи WordPress используют Cron, планировщик заданий на основе времени в Linux/Unix. Устаревшие, не выполненные задания Cron могут накапливаться, вызывая раздувание базы данных и медленную загрузку вашего сайта.

Причины, по которым это может произойти, разнообразны. Плохо написанный код плагинов, неправильно настроенное ручное задание Cron для wp-cron.php и запланированные задачи, оставшиеся после удаления резервной копии или плагина безопасности, - это всего лишь несколько причин, по которым события Cron в очереди могут неожиданно накапливаться.

Как посмотреть очередь Cron в WordPress

Рассмотрим быстрый способ просмотреть расписание wp-cron.

Вы можете это сделать с помощью MySQL запроса, например, выполнив его в phpMyAdmin:

SELECT *
FROM `wp_options`
WHERE `option_name` LIKE '%cron%'

Или через functions.php:

$cron_jobs = get_option( 'cron' );
var_dump($cron_jobs);

WordPress имеет недокументированную функцию _get_cron_array (), которая возвращает массив всех текущих запланированных задач. Это грубый, но эффективный метод для показа всех задач с помощью var_dump(). Для удобства использования вставьте в плагин или страницу следующий код:

echo '<pre>';
print_r (get_cron_array());
echo '</pre>';

Вы можете использовать WP-CLI. Из командной строки вы можете запустить следующую команду из каталога вашей установки WordPress:


wp cron event list

Он покажет таблицу запланированных событий, когда они будут запускаться и как часто они будет перенесены. Вот что мне показали, когда я запустил команду:

Как очистить очередь Cron в WordPress

Если накопилось много задач Cron, например, из-за неправильной работы плагина или из-за того, что служба Cron не работала длительное время, то можно очистить очередь Cron. При этом, конечно же, будут потеряны не выполненные действия, например, не отправлены письма с уведомлением о новых комментариях и новых статьях, или не внесены записи в базу данных о статистике посещений.

Рассмотрим два способа удаления задач Cron — с помощью phpMyAdmin и утилиты командной строки.

После входа в phpMyAdmin, перейдите в базу данных сайта, для которого вы хотите очистить очередь Cron, перейдите на вкладку SQL и выполните следующий запрос:

UPDATE wp_options SET option_value = '' WHERE option_name = 'cron';

Также вы можете использовать WP-CLI для очистки очереди задач Cron:

wp cron event list
wp cron event delete

атем проверьте свой сайт, чтобы убедиться, что всё загружается. Если все пойдёт хорошо, вы можете заметить более быструю панель управления WordPress и загрузку сайта.

Хотя не забудьте ещё раз проверить свой список WordPress Cron через 24 часа. Если что-то на вашем сайте остаётся неправильно настроенным и продолжает вызывать накопление запланированных задач, как и раньше, вам нужно будет решить эту проблему, чтобы предотвратить повторное раздутие базы данных в будущем.


Рекомендуемые статьи:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *