Як додати Планувальник завдань (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

SIP-транки — що це таке і як вони працюють у IP-телефонії

У сучасній IP-телефонії важливу роль відіграє технологія, яка забезпечує передачу голосу через інтернет між бізнесом…

15 години ago

Чому варто обрати ноутбук Apple MacBook Pro 14 для сучасних ІТ-завдань

Вибір робочої машини для веб-розробника або адміністратора серверів є завжди компромісом між портативністю, автономністю і…

5 днів ago

Практичний гайд: як підібрати надійний безперебійник для домашнього роутера

Зникло світло і разом з ним миттєво зник зв'язок з навколишнім світом? Це знайома та…

6 днів ago

Google втрачає монополію: Як підготувати IT-сайт до AI-пошуку (GEO)

Що взагалі сталося з пошуком в інтернеті? Я не побоюся сказати це вголос: сталася справжня…

3 тижні ago

Проксі для соцмереж та Facebook – Як уникнути бана облікових записів

Уявіть, що вас внесли до чорного списку елітного клубу. Якщо ви підійдете до фейс-контролю особисто…

3 тижні ago

Антидетект-браузери для початківців: що це таке (на прикладі Dolphin чи AdsPower) і як їх правильно поєднати з мобільними проксі

Анонімність та розділення акаунтів є базовою потребою для співробітників, що займаються арбітражем трафіку, SMM чи…

1 місяць ago