Категорії: 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

Останні пости

Антуан де Сент-Екзюпері

Ніколи не втрачай терпіння — це останній ключ, що відкриває двері Антуан де Сент-Екзюпері   Читати далі

28/03/2024

Сомерсет Моем

Подорослішавши, ви збагнете, що світ стає стерпним за однієї умови: коли розумієш, що людський егоїзм… Читати далі

27/03/2024

Михайло Грушевський

Всі вчаться своєї рідної мови, а наша біда така, що треба вчитися її більше, ніж… Читати далі

26/03/2024

ТОП-5 покерних обмінників

Професійний покер – це численні турніри та великі гроші, що потребує правильного налаштування фінансових інструментів.… Читати далі

25/03/2024

Гай Юлій Цезар

Всі довкола прагнуть винищити ворогів, а не об'єднатися з друзями Гай Юлій Цезар   Читати далі

24/03/2024

Як вибрати оптимальний смартфон для дитини?

Сьогоднішні діти стикаються з технологіями вже в ранньому віці, і смартфон давно перестав бути просто… Читати далі

22/03/2024