Как очистить Cron от устаревших задач

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

Если вы вдруг заметили, что в Cron’е остались старые задачи (увидеть это можно через плагин Cron View), то вы можете использовать следующую удобную функцию, чтобы удалить их. Замените ‘cron_name’ на имя той задачи, которую вы хотите удалить, после чего поместите код в файл functions.php. С избыточными задачами теперь будет покончено. Вы можете удалить добавленный фрагмент кода как только расписание Cron будет полностью очищено.

add_action("init", "clear_crons_left");
function clear_crons_left() {
wp_clear_scheduled_hook("cron_name");
}

http://www.wpmayor.com/posts/wordpress-hacks/how-to-remove-obsolete-cron-jobs/

Блог про WordPress
Комментарии: 6
  1. HotIce

    У меня Cron View не пошел. Долго не разбирался, но где-то читал предупреждение, что после 2.8 не факт что должен работать. Люди говорили, что у кого пошел на 3.*, у кого нет. Больше не нашел, чем смотреть задания, только напрямую в базе, но не удобно. С кроном в вордпресс, на мой взгляд, пичаль сплошная. ;)

    1. Дмитрий (автор)

      Посмотрел на wordpress.org: если смотреть по версиям, то для wordpress 3.1 шесть человек оставили сообщение, что плагин работает. Два человека сказали, что плагин работает для версии 3.1.1. Для версий выше данных нет, но нет и опровержений, что плагин не должен работать. По крайней мере в блоге разработчиков нет таких записей. Там вообще нет новых записей)

      1. Alex

        попробуйте Cron GUI

  2. HotIce

    Поискал. Не нашел, где читал про плагин. Интересно было бы, вдруг кто-то сможет внятно сказать из-за чего он иногда выкаблучивается. Мне персонально, крон как заноза. ;) Живет своей жизнью. А у разработчиков один ответ — пусть хостер правильно настроит обратную локальную петлю.. А люди потом пишут, что у них неожиданные всплески нагрузок на хостинг, и хостеры их рубят.

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

    В общем, персонально мне, весело с кроном жить. ;)

  3. AndreyEx

    А как удалить все задачи или по фильтру (например удалить все задачи выполняющиеся единожды)

    1. Дмитрий (автор)

      Можете попробовать следующий плагин:

      https://wordpress.org/plugins/wp-crontrol/

      А вообще, посмотрите примеры работы функции:

      https://codex.wordpress.org/Function_Reference/wp_clear_scheduled_hook.

Добавить комментарий

Получать новые комментарии по электронной почте.