Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
WordPress Cron
Владимир Скляр, WordCamp Russia 2014
Операционные системы
● Windows
Планировщик задач (Тask scheduler)
● Linux
cron — повторяющиеся задачи
at — одиночные задачи
Планировщики задач ОС
Планировщик Конфигурация
Задачи в ядре WordPress
● Проверка обновлений
● плагинов
● тем
● ядра
● Удаление записей из
корзины
● Удаление автосохране...
Абстракная схема планировщика WordPress
Планировщик
–
/wp-cron.php
Конфигурация
–
Cron API
wp_options cron→
Запуск
планиро...
Работа планировщика WordPress в деталях
init
wp_cron()
spawn_cron()
...
/wp-cron.php
...
http
Возможные проблемы
● Низкая посещаемость
– запуск с помощью планировщика ОС
● Высокая посещаемость
– планировщик старается...
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://e...
Альтернативный режим запуска
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/easycro...
Cron API
/wp-includes/cron.php
action
callback
callback
callback
callback
Одиночные задачи
wp_schedule_single_event(
time() + 3600, // время запуска
"hook_name", // имя события
array( $arg1, $arg2...
Повторяющиеся задачи
wp_schedule_event(
time() + 60, // время первого запуска
"hourly", // имя интервала
"hook_name", // и...
Задача
Интервал
выполнения
Интервалы повторяемых задач
["hourly"] => [
["interval"] => 3600,
["display"] => "Каждый час",
],
["daily"] => [
["interva...
Создание пользовательских интервалов
add_filter( "cron_schedules" , "add_custom_cron_interval" );
function add_custom_cron...
Повторяющиеся задачи
wp_schedule_event(
time() + 60, // время первого запуска
"hourly", // имя интервала
"hook_name", // и...
Удаление задач
wp_unschedule_event()
wp_clear_scheduled_hook()
Плагины
WP Crontrol
http://wordpress.org/plugins/wp-crontrol/
Плагины
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
Wordpress Cron
Wordpress Cron
Wordpress Cron
Wordpress Cron
Próxima SlideShare
Cargando en…5
×

Wordpress Cron

1.306 visualizaciones

Publicado el

Publicado en: Software

Wordpress Cron

  1. 1. WordPress Cron Владимир Скляр, WordCamp Russia 2014
  2. 2. Операционные системы ● Windows Планировщик задач (Тask scheduler) ● Linux cron — повторяющиеся задачи at — одиночные задачи
  3. 3. Планировщики задач ОС Планировщик Конфигурация
  4. 4. Задачи в ядре WordPress ● Проверка обновлений ● плагинов ● тем ● ядра ● Удаление записей из корзины ● Удаление автосохранений Одиночные Повторяющиеся ● Публикация запланированных записей ● Отправка пингов
  5. 5. Абстракная схема планировщика WordPress Планировщик – /wp-cron.php Конфигурация – Cron API wp_options cron→ Запуск планировщика
  6. 6. Работа планировщика WordPress в деталях init wp_cron() spawn_cron() ... /wp-cron.php ... http
  7. 7. Возможные проблемы ● Низкая посещаемость – запуск с помощью планировщика ОС ● Высокая посещаемость – планировщик старается максимально исключить возможность выполнения одной задачи несколькими процессами одновременно WP_CRON_LOCK_TIMEOUT = 60 секунд
  8. 8. http://wordpress.org/plugins/wp-missed-schedule/ Плагин «WP Missed Schedule»
  9. 9. Запуск через 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
  10. 10. Альтернативный режим запуска init wp_cron() spawn_cron() include ''wp-cron.php''; ... http://example.com/?wp_doing_cron
  11. 11. Альтернативный режим запуска // wp-config.php define( 'ALTERNATE_WP_CRON' , true );
  12. 12. Запуск с помощью сторонних сервисов ● EasyCron - https://www.easycron.com/ – плагин - http://wordpress.org/plugins/easycron/ ● SetCronJob - https://www.setcronjob.com/ ● ...
  13. 13. Cron API /wp-includes/cron.php
  14. 14. action callback callback callback callback
  15. 15. Одиночные задачи 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 ) { // код задачи }
  16. 16. Повторяющиеся задачи 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 ) { // код задачи }
  17. 17. Задача Интервал выполнения
  18. 18. Интервалы повторяемых задач ["hourly"] => [ ["interval"] => 3600, ["display"] => "Каждый час", ], ["daily"] => [ ["interval"] => 86400, ["display"] => "Каждый день", ], ["twicedaily"] => [ ["interval"] => 43200, ["display"] => "Два раза в день", ]
  19. 19. Создание пользовательских интервалов add_filter( "cron_schedules" , "add_custom_cron_interval" ); function add_custom_cron_interval ( $intervals ) { $intervals["weekly"] = array( "interval" => WEEK_IN_SECONDS, "display" => "Каждую неделю", ); return $intervals; }
  20. 20. Повторяющиеся задачи 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 ) { // код задачи }
  21. 21. Удаление задач wp_unschedule_event() wp_clear_scheduled_hook()
  22. 22. Плагины WP Crontrol http://wordpress.org/plugins/wp-crontrol/
  23. 23. Плагины Debug Bar Cron - http://wordpress.org/plugins/debug-bar-cron/ WP-CLI - http://wp-cli.org/
  24. 24. Multisite
  25. 25. «WordPress Cron» Владимир Скляр (versus.post@gmail.com), WordCamp Russia 2014

×