Как добавить Планировщик задач (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. Но, всегда лучше быть немного осведомленным о важных вещах своего сайта, не так ли?

 

Recent Posts

Уильям Шекспир

Грехи других судить вы так усердно рветесь, начните со своих и до чужих не доберетесь… Read More

18/04/2021

Что подарить друзьям на годовщину свадьбы

Люди, между которыми есть любовь и взаимопонимание, скрепляют отношения и зарождают новый союз, а дату… Read More

13/04/2021

Авторитетность домена и его влияние на SEO продвижение сайта

Для качественного SEO (поисковой оптимизации, раскрутки сайта) одним из важных показателей является Авторитет домена (Domain… Read More

27/03/2021

Как вывести деньги из PayPal – основные способы

Выяснение того, как вывести свои деньги с PayPal, является одним из первых вопросов, которыми озадачивается… Read More

26/03/2021

Как выбрать юбку под свою фигуру на LeBoutique

Юбка – мощный элемент женского гардероба, благодаря которому любой наряд будет выглядеть потрясающе стильно и… Read More

25/03/2021

Основные методы линкбилдинга: как получить качественные внешние ссылки на сайт

Поисковые системы (например, Google) проверяют технические характеристики вашего сайта, такие как скорость загрузки, удобство навигации,… Read More

24/03/2021