SlideShare a Scribd company logo
WordPress Cron
Владимир Скляр, WordCamp Russia 2014
Wordpress Cron
Операционные системы
● Windows
Планировщик задач (Тask scheduler)
● Linux
cron — повторяющиеся задачи
at — одиночные задачи
Планировщики задач ОС
Планировщик Конфигурация
Wordpress Cron
Задачи в ядре WordPress
● Проверка обновлений
● плагинов
● тем
● ядра
● Удаление записей из
корзины
● Удаление автосохранений
Одиночные Повторяющиеся
● Публикация
запланированных записей
● Отправка пингов
Wordpress Cron
Абстракная схема планировщика WordPress
Планировщик
–
/wp-cron.php
Конфигурация
–
Cron API
wp_options cron→
Запуск
планировщика
Работа планировщика WordPress в деталях
init
wp_cron()
spawn_cron()
...
/wp-cron.php
...
http
Возможные проблемы
● Низкая посещаемость
– запуск с помощью планировщика ОС
● Высокая посещаемость
– планировщик старается максимально исключить возможность
выполнения одной задачи несколькими процессами одновременно
WP_CRON_LOCK_TIMEOUT = 60 секунд
http://wordpress.org/plugins/wp-missed-schedule/
Плагин «WP Missed Schedule»
Запуск через Linux Cron
// wp-config.php
define('DISABLE_WP_CRON', true);
# crontab -e
*/15 * * * * wget -q -O – "http://example.com/wp-cron.php" > /dev/null 2>&1
crontab-generator.org
corntab.com
Альтернативный режим запуска
init
wp_cron()
spawn_cron()
include ''wp-cron.php'';
...
http://example.com/?wp_doing_cron
Альтернативный режим запуска
// wp-config.php
define( 'ALTERNATE_WP_CRON' , true );
Запуск с помощью сторонних сервисов
● EasyCron - https://www.easycron.com/
– плагин - http://wordpress.org/plugins/easycron/
● SetCronJob - https://www.setcronjob.com/
● ...
Cron API
/wp-includes/cron.php
action
callback
callback
callback
callback
Одиночные задачи
wp_schedule_single_event(
time() + 3600, // время запуска
"hook_name", // имя события
array( $arg1, $arg2, $arg3 ) // аргументы
);
add_action( "hook_name", "hook_callback" , 10, 3 );
function hook_callback ( $arg1, $arg2, $arg3 ) {
// код задачи
}
Повторяющиеся задачи
wp_schedule_event(
time() + 60, // время первого запуска
"hourly", // имя интервала
"hook_name", // имя события
array( $arg1, $arg2, $arg3 ) // аргументы
);
add_action( "hook_name", "hook_callback", 10, 3 );
function hook_callback ( $arg1, $arg2, $arg3 ) {
// код задачи
}
Задача
Интервал
выполнения
Интервалы повторяемых задач
["hourly"] => [
["interval"] => 3600,
["display"] => "Каждый час",
],
["daily"] => [
["interval"] => 86400,
["display"] => "Каждый день",
],
["twicedaily"] => [
["interval"] => 43200,
["display"] => "Два раза в день",
]
Создание пользовательских интервалов
add_filter( "cron_schedules" , "add_custom_cron_interval" );
function add_custom_cron_interval ( $intervals ) {
$intervals["weekly"] = array(
"interval" => WEEK_IN_SECONDS,
"display" => "Каждую неделю",
);
return $intervals;
}
Повторяющиеся задачи
wp_schedule_event(
time() + 60, // время первого запуска
"hourly", // имя интервала
"hook_name", // имя события
array( $arg1, $arg2, $arg3 ) // аргументы
);
add_action( "hook_name", "hook_callback", 10, 3 );
function hook_callback ( $arg1, $arg2, $arg3 ) {
// код задачи
}
Удаление задач
wp_unschedule_event()
wp_clear_scheduled_hook()
Плагины
WP Crontrol
http://wordpress.org/plugins/wp-crontrol/
Wordpress Cron
Плагины
Debug Bar Cron - http://wordpress.org/plugins/debug-bar-cron/
WP-CLI - http://wp-cli.org/
Multisite
«WordPress Cron»
Владимир Скляр (versus.post@gmail.com), WordCamp Russia 2014

More Related Content

PPTX
PowerShell
PDF
2014.10.15 Сергей Бурладян, Avito.ru
PDF
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
PDF
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
PDF
CSSO — сжимаем CSS
PDF
WordPress Cron API
PDF
Леонид Васильев "Python в инфраструктуре поиска"
PDF
Thumbtack Expertise Days # 5 - Ansible
PowerShell
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Мурат Кабилов, Avito.ru #PostgreSQLRussia
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
CSSO — сжимаем CSS
WordPress Cron API
Леонид Васильев "Python в инфраструктуре поиска"
Thumbtack Expertise Days # 5 - Ansible

What's hot (20)

PDF
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
PDF
05 - Web-технологии. Сетевые протоколы
PDF
Зачем программистам Ansible
PDF
Вячеслав Олиянчук — Яндекс.Авто 2.0 на Node.js
PPT
Загрузка, обработка, хранение и отдача статики
PDF
Reform: путь к лучшему ORM
PDF
PostgreSQL Streaming Replication
PDF
Семь тысяч Rps, один go
PDF
Суперсилы Chrome developer tools
PDF
Streaming replication in practice
PPTX
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах
PDF
Дмитрий Милых «Деплой Django-проекта с помощью Fabric»
PDF
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
PPT
HSE{Consult}: DevOps – новая методология разработки
PDF
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
PDF
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
PDF
nginx internals
PDF
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
05 - Web-технологии. Сетевые протоколы
Зачем программистам Ansible
Вячеслав Олиянчук — Яндекс.Авто 2.0 на Node.js
Загрузка, обработка, хранение и отдача статики
Reform: путь к лучшему ORM
PostgreSQL Streaming Replication
Семь тысяч Rps, один go
Суперсилы Chrome developer tools
Streaming replication in practice
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах
Дмитрий Милых «Деплой Django-проекта с помощью Fabric»
TMPA-2015: Multi-Platform Approach to Reverse Debugging of Virtual Machines
HSE{Consult}: DevOps – новая методология разработки
TARS: Сделай уровень frontend-рутины 0% — Артём Малко, 2ГИС
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
nginx internals
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Ad

More from versusbassz (6)

PDF
Premium-темы WordPress (Wordcamp Russia 2015)
PDF
Вёрстка по методологии БЭМ
PDF
Premium-темы WordPress
PDF
Корневая директория WordPress
PDF
Кратко о WordPress
PDF
Advanced Custom Fields
Premium-темы WordPress (Wordcamp Russia 2015)
Вёрстка по методологии БЭМ
Premium-темы WordPress
Корневая директория WordPress
Кратко о WordPress
Advanced Custom Fields
Ad

Wordpress Cron