Категории: Wordpress - как сделать

Как добавить Планировщик задач (Cron Job) в WordPress

Планировщики задач (Cron Jobs) – это то, что мы используем каждый день, даже если мы об этом и не знаем. Они запускаются за сценой, наполняя жизнью наши любимые сайты. В этом уроке мы обсудим Cron задачи в целом, уникальные задания в WordPress, и рассмотрим базовый метод добавления планировщика задач в WordPress.

 

 

Что такое Планировщик задач (Cron Job)?

В общем, Cron – это утилита, которая помогает запланировать выполнение команд или скриптов в определенное время. Задачи Cron – это результирующие задачи, и если их перевести на человеческий язык, они сообщают серверу что-то вроде «запускать файл file.php каждый день в полночь». Планировщик задач – это простой способ настроить автоматический запуск задачи, либо на разовой, либо на постоянной основе.

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

 

 

Какая польза от Планировщика задач в WordPress?

Кроме автоматического резервного копирования, упомянутого выше, в WordPress есть масса других применений для Cron. Одной из самых ярких является автоматическое обновление. Планировщик задач регулярно проверяет последние обновления программного обеспечения, тем и плагинов. И найдя доступные обновления, предлагает вам нажать кнопку «Обновить».

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

 

 

Чем Cron в WordPress отличается от обычного Cron?

У WordPress фактически есть своя система для запуска заданий Cron. И она немного отличается от обычного Cron.

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

А если никто не заходит на сайт? Вот тут и кроется потенциальная проблема. Если никто не посещает сайт в течение определенного периода времени, Планировщик задач спокойно себе отдыхает. Очевидно, что если ваш сайт ежедневно посещают тысячи пользователей, это вряд ли будет проблемой. Но если на ваш сайт заходят лишь несколько посетителей в день, а вам нужно запускать Cron каждые 30 минут, тогда вы столкнулись с проблемой.

Например, вы настроили с помощью плагина автоматическую отправку рассылки на 2 часа ночи. Теоретически, если никто не посетит ваш сайт до 7 утра, тогда письма не будут отправлены (при прочих равных условиях) до 7 часов утра.

 

Однако есть способы обойти эту проблему.

 

 

Как добавить задачи по расписанию в WordPress

Здесь мы кратко рассмотрим процесс добавления основных повторяющихся заданий, а также одноразовых запланированных заданий.

 

 

Как добавить повторяющиеся задачи Cron

Важно помнить, что Планировщик задач в WordPress работает с интервалами, а не в определенное время. Например, если вы планируете запуск задачи в 00 часов ночи с интервалом в два часа, он первый раз запустится в 12 часов ночи. А потом через каждые 2 часа.

Чтобы добавить повторяющиеся задачи, воспользуйтесь примером кода ниже (взято с Codex; можно использовать, например, в своем плагине):

 

register_activation_hook(__FILE__, 'my_activation');
function my_activation() {
  if (! wp_next_scheduled ( 'my_hourly_event' )) {
    wp_schedule_event(time(), 'hourly', 'my_hourly_event');
  }
}
add_action('my_hourly_event', 'do_this_hourly');

function do_this_hourly() {
  // выполнять что-то каждый час
}

 

 

 

Как добавить одноразовую задачу Cron

Чтобы добавить одноразовое задание Cron в WordPress, вы можете использовать следующий пример кода в качестве базы. Опять же, помните, что даже если вы запланируете запуск события в определенное время, Cron запустится только тогда, когда на ваш сайт примерно в одно и то же время зайдет посетитель. Чтобы обойти это ограничение, лучше всего настроить Cron на сервере вашего хостинга и установить запуск файла {DOMEN}/wp-cron.php на определенное время. Также на сервере можно настроить и повторяющийся запуск Планировщика задач.

Чтобы запустить задачу через один час с текущего времени, вы можете в своем плагине использовать эту структуру:

 

function do_this_in_an_hour() {
  // что-то сделать через час
}
add_action( 'my_new_event', 'do_this_in_an_hour' );

// поместите эту строку внутри функции,
// предположительно в ответ на что-то, что пользователь делает
// иначе будет запланировано новое событие при каждом посещении страницы
wp_schedule_single_event( time() + 3600, 'my_new_event' );

// time() + 3600 = один час с текущего времени

 

 

 

 

Краткий итог

Вот и все! Это было довольно быстрое и краткое введение в Планировщик задач, который используется в сайтах на движке WordPress. Честно говоря, если вы не являетесь разработчиком, вам, вероятно, никогда не понадобится знать о задачах Cron в WordPress. Но, всегда лучше быть немного осведомленным о важных вещах своего сайта, не так ли?

 

Share

Последние посты

Как выбрать идеальный ноутбук: Полный гайд

Выбор ноутбука может быть сложной задачей в мире, где рынок переполнен вариантами на любой вкус… Читать далее

22/04/2024

Томас Эдисон

Наша самая большая слабость заключается в том, что мы быстро сдаемся. Самый верный способ добиться… Читать далее

20/04/2024

Самые красивые и впечатляющие мосты со всего мира (ТОП-10)

Мост — это нечто большее, чем просто сооружение, соединяющее два берега. Для того, чтобы появился… Читать далее

19/04/2024

Соломон

Жизнь нас учит, что свою пару мы познаем, когда разводимся, своих братьев мы познаем, когда… Читать далее

18/04/2024

Чак Паланик

Кто может — тот делает. Кто не может — тот критикует Чак Паланик   Читать далее

17/04/2024

Ричард Бах

Ни одно желание не дается тебе отдельно от силы, позволяющей его осуществить. Хотя, возможно, для… Читать далее

16/04/2024