Планувальники завдань (Cron Jobs) – це те, що ми використовуємо щодня, навіть якщо ми про це і не знаємо. Вони запускаються за сценою, наповнюючи життям наші улюблені сайти. У цьому уроці ми обговоримо Cron завдання в цілому, унікальні завдання в WordPress, та розглянемо базовий метод додавання планувальника завдань в WordPress.
Загалом, Cron – це утиліта, яка допомагає запланувати виконання команд або скриптів в певний час. Завдання Cron – це підсумовуючі завдання, і якщо їх перевести на людську мову, вони повідомляють серверу щось на кшталт «запускати файл file.php кожен день опівночі». Планувальник завдань – це простий спосіб налаштувати автоматичний запуск завдання, або на разовій, або на постійній основі.
Прикладом користі від планувальника може служити автоматичний запуск служби резервного копіювання свого сайту. Нам не потрібно щоразу натискати кнопку, щоб зробити бекап нашого сайту, — досить буде одного разу налаштувати Cron і встановити для нього розклад.
Крім автоматичного резервного копіювання, згаданого вище, в WordPress є маса інших застосувань для Cron. Однією з найяскравіших є автоматичне оновлення. Планувальник завдань регулярно перевіряє останні оновлення програмного забезпечення, тем та плагінів. І знайшовши доступні оновлення, пропонує вам натиснути кнопку «Оновити».
Крім того, Cron в WordPress також займається публікацією запланованих постів, надсиланням пінгбеків та трекбеків, і іншими потенційно корисними речами.
У WordPress фактично є своя система для запуску завдань Cron. І вона трохи відрізняється від звичайного Cron.
Для звичайного планувальника завдань досить вказати точну дату і час виконання кожного завдання. І, подібно до годинникового механізму, ваш скрипт буде виконуватися саме в цей час. Але Cron в WordPress працює по-іншому. Фактично він не працює. Замість цього він буде працювати лише тоді, коли хтось відвідує ваш сайт. Всякий раз, коли хтось відвідує сайт, Планувальник завдань у ВордПрес перевіряє, чи є завдання за розкладом, які потрібно запустити. Якщо він виявить, що запланований час завдання вже пройшов, він все одно продовжить виконання цього завдання.
А якщо ніхто не заходить на сайт? Ось тут і криється потенційна проблема. Якщо ніхто не відвідує сайт протягом певного періоду часу, Планувальник завдань спокійно собі відпочиває. Очевидно, що якщо ваш сайт щодня відвідують тисячі користувачів, це навряд чи буде проблемою. Але якщо на ваш сайт заходять лише кілька відвідувачів в день, а вам потрібно запускати Cron кожні 30 хвилин, тоді ви зіткнулися з проблемою.
Наприклад, ви налаштували за допомогою плагіна автоматичну відправку розсилки на 2 годину ночі. Теоретично, якщо ніхто не відвідає ваш сайт до 7 ранку, тоді листи не будуть відправлені (за інших рівних умов) до 7 години ранку.
Проте є способи обійти цю проблему.
Тут ми коротко розглянемо процес додавання основних повторюваних завдань, а також одноразових запланованих завдань.
Важливо пам’ятати, що Планувальник завдань в 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 в 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. Але, завжди краще бути трохи обізнаним про важливі речі свого сайту, чи не так?
Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…
Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…
Вибір ідеального хостингу під свій сайт може бути досить заплутаною справою, особливо коли існує багато…
Щоб уникати помилок, потрібно набиратися досвіду; щоб набиратися досвіду, потрібно робити помилки Лоуренс Пітер
Коротке визначення Чорного SEO Чорне СЕО (або Чорна оптимізація) — це будь-яка практика, метою якої…
Отримання прав водія категорії C відкриває двері до професійної діяльності, пов'язаної з керуванням вантажними автомобілями.…