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

Tags: WordPress

Recent Posts

Опалення і гаряча вода коли треба, а не коли включать

Тепло в домі і гаряча вода в будь-який час для багатьох мешканців багатоквартирних та приватних… Read More

19/09/2020

Що краще: цифрове телебачення Т2 чи інтернет-телебачення

Сучасне життя неможливо уявити без телебачення. Воно дозволяє дізнаватися про події в Україні та світі,… Read More

02/09/2020

Гіпоалергенна подушка. Чому вона важлива?

Зараз знайдеться мало людей, в яких немає алергії на продукти або пилок рослин. Вважається, що… Read More

28/08/2020

Футбольний Інстаграм – що нового у топових футболістів

Деякі відомі футболісти ретельно приховують свої особисте життя, а інші – активно постять фотографії з… Read More

24/08/2020

Види та типи компресійних панчіх

Вироби називають компресійними, коли їх застосовують для лікування, а також профілактики порушень кровотоку в нижніх… Read More

22/08/2020

Як правильно замінити оливу у двотактному гідроциклі?

Гідроцикли – це класний плавзасіб, який може подарувати вам незліченні години приємного проведення часу на… Read More

19/08/2020