что такое wp cron php

WP Cron (планировщик задач)

Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Название Cron взято из UNIX-подобных операционных систем. Там Cron — это планировщик заданий в задачу которого входит периодическое выполнение указанных действий в определённое время.

Крон задачи WordPress (из коробки)

WordPress использует крон для своих нужд, так в нем есть базовые крон задачи:

Проверка обновлений для плагинов, тем, переводов и ядра (два раза в день).

Удаление комментариев и записей из корзины (раз в день).

Удаление просроченных временных опций (раз в день).

Удаление черновиков (auto-draft) (раз в день).

Удаление старых файлов экспорта (раз в день) (с WP 4.9.6)

Удаление просроченных ключей режима восстановления (раз в день) (с WP 5.2) (не для мультисайта)

Проверка и обновление статуса здоровья сайта (раз в неделю) (с WP 5.4)

Проверка поддерживается ли HTTPS на сайте (c WP 5.7)

Как работает крон (шаг за шагом)

Файл /wp-cron.php опять проверяет: не запускался ли недавно крон (менее 60 сек назад), есть ли подошедшие крон задания.

Далее, запускается указанный при регистрации крон задачи хук-событие, т.е. запускается текущее задание:

Если обращаться к файлу /wp-cron.php напрямую, то он будет отрабатывать только раз в WP_CRON_LOCK_TIMEOUT секунд (60 секунд).

Как обрабатываются долгие крон задачи. Допустим, в крон есть несколько заданий. Был отправлен «первый» крон запрос и первое задание начало выполняться. Но выполняется оно так долго (больше 60 секунд), что был отправлен «второй» крон запрос. В этом случае следующая задача в первом крон запросе НЕ будет выполнена — первый запрос просто остановится после выполнения «долгой» задачи. Следующие крон задания будут выполняться во втором запросе.

Заметки

Крон запрос запускается отдельно от текущей загрузки страницы и в нем отдельно грузится среда ВП и т.д. Текущий запрос (посещение страницы) только инициализирует крон (создает запрос на файл крона), если время подошло.

Как проверить, работает ли крон на сайте?

Вариант 1

Это можно сделать на странице админки «Здоровье сайта». Заходим на страницу и немного ждем (пока ждем WP пробудет сделать «петлевой запрос») если он не удается, мы увидим следующее сообщение и это значит что крон запрос не работает.

что такое wp cron php. cron 1. что такое wp cron php фото. что такое wp cron php-cron 1. картинка что такое wp cron php. картинка cron 1. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Вариант 2

Установите плагин WP Crontrol. (После проверки его можно удалить).

Перейдите на страницу плагина События Крон и если крон не работает вы увидите предупреждения о том, что некоторые задания уже просрочены:

что такое wp cron php. clipboard image 941303. что такое wp cron php фото. что такое wp cron php-clipboard image 941303. картинка что такое wp cron php. картинка clipboard image 941303. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Вариант 3

Быстрый способ убедиться что крон исправно работает — это опубликовать запись с датой позже текущей (она будет поставлена в очередь на публикацию) и посмотреть опубликуется она или нет.

что такое wp cron php. wp cron planirovanie publikatsii. что такое wp cron php фото. что такое wp cron php-wp cron planirovanie publikatsii. картинка что такое wp cron php. картинка wp cron planirovanie publikatsii. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

что такое wp cron php. wp cron planirovanie publikatsii 1. что такое wp cron php фото. что такое wp cron php-wp cron planirovanie publikatsii 1. картинка что такое wp cron php. картинка wp cron planirovanie publikatsii 1. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Если крон работает, то запись опубликуется в заданное время. А если крон не работает, то мы увидим такую картину:

что такое wp cron php. wp cron planirovanie publikatsii 2. что такое wp cron php фото. что такое wp cron php-wp cron planirovanie publikatsii 2. картинка что такое wp cron php. картинка wp cron planirovanie publikatsii 2. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Причины, по которым WP-Cron может не работать

Сron может не работать по разным причинам:

Включение другого механизма запуска крона

По умолчанию крон запускается POST запросом, с помощью wp_remote_post() с любой посещенной страницы сайта, если время подошло. Но если у вас на сервере такой вариант не работает, то можно включить альтернативный вариант запуска крона. Для этого добавьте такую константу в файл wp-config.php :

Запуск WP-cron только с сервера

Чтобы включить запуск крон заданий только с сервера, можно отключить встроенный запуск крон задач в WP.

Как отключить крон?

Чтобы отключить запуск WP-Крона, нужно зайти в файл wp-config.php и добавить туда следующую строчку:

Отключать крон крайне не рекомендуется, потому что через него WordPress чистит за собой всякие черновики и удаляет записи из корзины, также на базе крона могут работать некоторые плагины!

Функции крона

Весь список смотрите по этой ссылке.

Создание крон задач

Вызывать функции создания крон задач нужно только один раз! Обычно это делается при активации плагина, а при деактивации эти крон задачи нужно удалять. Или можно сначала проверить нет ли уже указанной крон задачи, если нет, то добавить.

При вызове функции регистрации задачи она записывается в опцию сайта cron и работает уже от туда автономно.

Если задача есть в кроне, но она не срабатывает, значит во время крон запроса не подключается хук. Например, если выставлять задачу wp_schedule_single_event() через AJAX запрос и там же регистрировать хук этой задачи, то задача будет зарегистрирована в кроне, но функция в нужный момент выполняться не будет, потому что хук на который повешена функция срабатывает при AJAX запросе, а должен срабатывать при крон запросе! Поэтому сам хук нужно вешать в functions.php или в плагин или как-то еще, но не во время обработки аякс запроса.

Если при добавлении крон задачи, в планировщике уже есть задача с таким же названием и аргументами и время новой задачи не превышает 10 минут от времени имеющийся, то добавление новой крон-задачи будет проигнорировано.

Суть этого в том, чтобы не допустить планирования двух одинаковых событий в течение десяти минут друг от друга, но не препятствовать планированию одинаковых событий с разницей во времени больше десяти минут друг от друга.

События считаются одинаковыми, если совпадают: название хука и передаваемые параметры.

Повторяющиеся задачи

#1 Создаем крон задачу при активации плагина

Запланируем ежечасное действие для плагина. Для этого вызовем wp_schedule_event() при активации плагина (если делать не при активации, то мы получим множество запланированных событий!).

#2 Создаем крон задачу если её еще нет

Этот пример не полагается на активацию плагина (через директорию плагинов), вместо этого он добавляет событие, если его не существует.

#3 Еще примеры

Смотрите в описании функции wp_schedule_event().

Одноразовые задачи

#1 Запланируем событие через час с текущего момента

#2 Еще примеры

Интервалы для крон задач

Крон интервалы нужны, чтобы они были и затем их можно было использовать при пере-регистрации крон-задачи.

Добавим интервал «5 минут» (делать что-либо каждые 5 минут):

Код создания интервала должен срабатывать всегда, так как данные об интервалах не хранятся в базе данных, а используются они постоянно. При выполнении одной крон задачи, WP создает такое же задание, а метку времени этого нового задания вычисляет на основе указанного имени интервала. И поэтому данные интервала нужны всегда!

Казалось бы почему просто не указать интервал при добавлении задачи и все, зачем нужно добавлять интервал через фильтр. Дело в том, что один и тот же интервал могут использовать разные крон задачи.

Теперь можно использовать этот интервал при создании крон-задачи:

Константы WordPress которые могут пригодится при создании крон интервала:

Удаление крон задач

Для удаления крон задач есть 3 функции:

Удаляет конкретную крон-задачу. Для удаления нужно знать все 3 параметра: метку времени, хук, передаваемые параметры.

Заметка: если параметр не передается, то его соответственно можно не указывать.

Удаляет все крон-задачи прикрепленные к указанному хуку и имеющие указанные параметры.

Удаляет абсолютно все крон-задачи, прикрепленные к указанному хуку, неважно какая метка времени или какие передаются параметры.

Наглядно, как работают функции:

Дебаг Крона в WordPress

Может быть полезным временно отключить крон, чтобы никакие крон-задачи не выполнялись на сайте пока вы работаете над функцией крона.

Для отключения крона добавьте в wp-config.php такую константу:

Получить весь список текущих крон задач можно функцией _get_cron_array() :

Запуск крона с сервера

В WP, крон запускается нестабильно и нельзя, например, указать точное время запуска. Так получается, потому что для инициализации очередного крон задания нужно, чтобы кто-либо (возможно бот) посетили сайт. Только при посещении сайта происходит проверка и запуск крона если время подошло. Так, если на сайт никто не заходит месяц, то крон не будет работать месяц.

В этом случае, крон задачи WP будут срабатывать даже если сайт в нужным момент никто не посещает.

Формат Crontab linux (подробнее читайте здесь):

Источник

Что такое WP-Cron и как его отключить

В этом посте вы узнаете все, что нужно знать обычным пользователям WordPress о WP-Cron, что такое WP-Cron, как он работает и как вы можете просмотреть все задачи WP-Cron на своем сайте. А также о некоторых причинах, по которым вы можете отключить WP-Cron и заменить его собственным системным cron, основанным на времени, и как именно это сделать в cPanel.

Что такое WP-Cron (wp-cron.php)

WP-Cron – это то, что WordPress использует для обработки запланированных по времени задач в WordPress.

Например, если вы заранее планируете опубликовать запись в следующий вторник в 16:00, WP-Cron отвечает за то, чтобы запись действительно была опубликована в это время. Или, если вы планируете еженедельную очистку базы данных с помощью вашего любимого плагина оптимизации базы данных, WP-Cron также справится с этим.

По сути, WP-Cron – это то, что делает любую задачу, зависящую от времени, функцией. Он получил свое название от системы планирования cron в Unix-подобных операционных системах. С помощью этого cron системного уровня можно автоматически запускать задачи по заданному расписанию.

Каким образом, несмотря на схожесть названий, WP-Cron отличается от cron-инструментов.

WP-Cron предназначен не только для действий, которые вы планируете, – многие плагины WordPress также полагаются на WP-Cron для планирования выполнения своих собственных задач. Например, если вы используете WooCommerce, у него есть множество внутренних процессов, которые зависят от WP-Cron.

Как работает WP-Cron?

WP-Cron запускается при посещении вашего сайта, что приводит к одному из его самых больших ограничений. Каждый раз, когда вы или другой человек посещаете ваш сайт WordPress (серверный или интерфейсный), WordPress запускает wp-cron.php и проверяет наличие запланированных задач. Если есть запланированные задачи, WordPress обработает их.

Но если нет посетителей, то нечего запускать эти задачи, а это значит, что запланированные задачи не будут выполняться, пока не будет посещения.

Как просматривать задачи WP-Cron

После того, как вы установите и активируете плагин с WordPress.org, перейдите в Инструменты → События Cron. Здесь отображаются все запланированные задачи на сайте и то, как часто и когда они запускаются. При необходимости можно запустить их вручную.

На скриншоте приведен пример свежей установки WordPress, так что на нем не так много всего. Если у вас много плагинов, вы увидите намного больше задач:

что такое wp cron php. wp cron disable 1. что такое wp cron php фото. что такое wp cron php-wp cron disable 1. картинка что такое wp cron php. картинка wp cron disable 1. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Если вы перейдете на вкладку Cron Schedules, то увидите все различные временные интервалы расписания и сможете создать свои собственные. WP Crontol также сообщит вам, откуда взялось расписание, если вы наведете на него курсор:

что такое wp cron php. wp cron disable 2. что такое wp cron php фото. что такое wp cron php-wp cron disable 2. картинка что такое wp cron php. картинка wp cron disable 2. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Можно создать и свои собственные события cron на вкладках «Добавить событие Cron» или «Добавить событие PHP Cron».

Как защитить ваш сайт WordPress от brute-force атак

Почему нужно отключить WP-Cron?

Есть несколько причин, по которым придется отключить WP-Cron и заменить его настоящим системным Cron (с вашего сервера).

1. Не всегда надежно

Одним из самых больших ограничений WP-Cron является то, что он требует для своей работы посещение кем-то вашего сайта. Эти посещения могут быть внешними посещениями других пользователей или вашими собственными посещениями, пока вы работаете с панелью управления. Если нет посещений сайта, ваши запланированные задачи не будут выполняться.

Если у вас сайт с высокой посещаемостью, это не проблема – на ваш сайт всегда будут заходить люди, что позволяет запускать WP-Cron. Но для сайтов с низкой посещаемостью это может вызвать серьезные проблемы.

Например, предположим, что вы планируете публикацию поста в 17:00, но до 20:00 на сайте не было посетителей. В этом случае пост не будет опубликован до 8 вечера, потому что не выполнилось главное условие для запуска WP Cron.

Это может не иметь большого значения для постов в блогах, но ограничение повлияет на все другие временные задачи на вашем сайте (такие как автоматические обновления, резервное копирование, очистка и другие).

С помощью реального системного Cron можно сделать так, чтобы задачи запускались каждые X минут, как часы, независимо от того, есть ли у вашего сайта посетители, что является гораздо более предсказуемым и надежным способом решения задач, основанных на времени.

2. Может повредить производительности

Если у вас сайт с высокой посещаемостью, первое ограничение на вас не распространяется.

Но это приводит к другой потенциальной проблеме – производительности. По умолчанию wp-cron.php запускается при каждой загрузке страницы, что может снизить производительность. WordPress пытается ограничить это, не отправляя дополнительные запросы чаще одного раза в 60-секундный период. Но если ваш сайт получает несколько одновременных запросов, это все равно может привести к нескольким запросам к wp-cron.php.

Даже с ограничением в 60 секунд маловероятно, что на вашем сайте есть задачи, которые должны выполняться каждые 60 секунд. Обычно менее частое расписание, например каждые 15 минут, более приемлемо.

Важно: WP-Cron может быть проблематичным как для сайтов WordPress с низким, так и с высоким трафиком, хотя по разным причинам.

Как отключить WP-Cron и заменить его на реально работающий Cron

Рассмотрим, как отключить WP-Cron и заменить его собственным системным cron.

Для ясности: это не означает, что на вашем сайте перестанут работать временные задачи. Это просто означает, что вместо того, чтобы полагаться на посещения для запуска WP-Cron, можно использовать более надежную систему, основанную на времени.

Вы сможете установить частоту в соответствии со своими потребностями. Хорошая отправная точка – запускать его каждые 15 минут. Тогда ваш сайт будет выполнять все временные задачи каждые 15 минут, несмотря ни на что. У вас может быть 500 посещений или ноль посещений – в любом случае ваши задачи будут запускаться каждые 15 минут.

Отключение WP-Cron состоит из двух частей:

Рекомендуем сделать резервную копию вашего сайта, прежде чем продолжить, потому что в файл wp-config.php будут внесены изменения.

1. Отключите WP-Cron в файле wp-config.php

Создав последнюю резервную копию вашего сайта, подключитесь к нему через FTP или cPanel File Manager.

Найдите и отредактируйте файл wp-config.php, который обычно находится в корневой папке вашего сайта.

Добавьте следующий фрагмент кода над строкой, в которой говорится /* That’s all, stop editing! Happy publishing. */ :

что такое wp cron php. wp cron disable 3. что такое wp cron php фото. что такое wp cron php-wp cron disable 3. картинка что такое wp cron php. картинка wp cron disable 3. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

2. Настройте вашу систему Cron

Теперь нужно настроить свой собственный системный cron для запуска wp-cron.php – в противном случае ни одна из задач вашего сайта WordPress не будет выполняться.

Как вы это сделаете, будет зависеть от вашего хостинга, но покажем, как это выглядит в cPanel. Если вы сомневаетесь, обратитесь за помощью в службу поддержки хостинга.

Сначала найдите инструмент под названием Cron Jobs или подобный:

что такое wp cron php. wp cron disable 4. что такое wp cron php фото. что такое wp cron php-wp cron disable 4. картинка что такое wp cron php. картинка wp cron disable 4. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Теперь вы должны увидеть интерфейс, который позволит вам настроить расписание для вашего задания cron и команду, которую хотите запустить. В cPanel вам нужно использовать раскрывающееся меню «Общие настройки» для выбора расписания. В противном случае для настройки расписания нужно будет следовать синтаксису cron. Crontab.guru упрощает создание необходимого синтаксиса.

После настройки расписания введите следующий фрагмент кода в разделе «Команда». Обязательно замените https://yourdomain.com на фактическое доменное имя вашего сайта:

что такое wp cron php. wp cron disable 5. что такое wp cron php фото. что такое wp cron php-wp cron disable 5. картинка что такое wp cron php. картинка wp cron disable 5. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Затем нажмите «Добавить новое задание Cron», и все готово к работе! Вы увидите его в разделе «Текущие задания Cron». При необходимости можно отредактировать или удалить задание cron из этого раздела:

что такое wp cron php. wp cron disable 6. что такое wp cron php фото. что такое wp cron php-wp cron disable 6. картинка что такое wp cron php. картинка wp cron disable 6. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Рекомендуем установить плагин WP Crontol, чтобы убедиться, что запланированные задачи работают. Если какие-либо задачи не запускаются, WP Crontol выделит их. Но вы можете игнорировать предупреждение об отключении WP-Cron.

Вы только что официально отключили WP-Cron и заменили его своим собственным системным заданием cron.

Не можете настроить Cron на своем хостинге? Используйте стороннюю службу

Если вы не можете настроить задания cron на своем веб-хостинге или если вас просто сбивает с толку интерфейс вашего хоста, вы также можете использовать сторонний сервис. Некоторые популярные варианты:

Все, что вам нужно сделать, это использовать одну из этих служб для выполнения той же команды из предыдущего раздела.

Источник

Все что нужно знать про WP Cron в WordPress

Что такое cron и в чем его отличие от wp-cron?

Cron — команда UNIX, которая используется для выполнение периодических задач, через заданный промежуток времени.

Wp-cron — псевдо-крон, который необходим для выполнение функционала обычного крона, но в рамках wordpress. Он необходим для следующих задач:

Особенности wp-cron

Все крон задачи хранятся в опции ‘cron‘. Каждая задача это массив состоящий из времени, хука, расписания и аргументов.

Посмотреть список всех задач можно с помощью:

Добавить свою крон задачу

Зарегистрировать задачу можно следующими функциями:

Как видим отличие в том, что wp_schedule_single_event выполняется один раз, а wp_schedule_event через промежуток($recurrence).

Так же, чтобы не создавать дубли крон-задач, что является типичной ошибкой новичков, необходимо перед добавлением всегда проверять наличие этой задачи с помощью:

Данная функция вернет время, в которое выполнится крон-задача если она уже создана.

Удалить крон-задачу можно следующими способами:

Различие между функциями можно почитать в документации.

Мы так же можем добавить свой интервал если это необходимо:

Уменьшение нагрузки на сервер отключением wp-cron

При каждой загрузке страницы подключается файл wp-cron.php в котором происходит работа запускается крон-задачи wordpress’а если это нужно.

Есть возможность отключить этот функционал и запускать их вручную или через серверный крон.

Чтобы отключить крон достаточно написать в wp-config.php

Для того, чтобы функционал wp-cron работал необходимо на хостинге настроить cron-задачу, которая будет запускать wp-cron. Делается это очень легко.

Источник

wp-cron.php и нагрузка на сайт, что делать?

что такое wp cron php. wp new. что такое wp cron php фото. что такое wp cron php-wp new. картинка что такое wp cron php. картинка wp new. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

что такое wp cron php. newheader. что такое wp cron php фото. что такое wp cron php-newheader. картинка что такое wp cron php. картинка newheader. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Доброго времени суток. 🙂

Сегодня будет скорее информативная статья, нежели инструкция об установке чего либо на сайт. Если конкретнее, то речь пойдет о файле wp-cron.php и все что с ним связано. Дело в том, что когда-то я так же как и многие не знал об этом звере ничего и в какой-то момент работы со своим сайтом, столкнулся с вопросом нагрузки на сервер.

что такое wp cron php. 28032017213. что такое wp cron php фото. что такое wp cron php-28032017213. картинка что такое wp cron php. картинка 28032017213. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Выглядело в логах, это примерно так:

что такое wp cron php. wp stattya. что такое wp cron php фото. что такое wp cron php-wp stattya. картинка что такое wp cron php. картинка wp stattya. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Как видите запросы каждую минуту, а то и несколько раз за минуту и так на протяжении всего дня. Я начал искать информацию и сразу же понял, что напал на верный след. Давайте теперь рассмотрим что такое wp-cron.php, зачем он нужен и стоит ли его отключать.

Что такое wp-cron.php?

В этом есть огромные плюсы, потому как ваш сайт не зависит от вас и правильности ваших настроек. Так же, если ваш хостинг не особо авторитетный и автоматически не настроил планировщик (cron), то wp-cron.php будет выполнять поставленные задачи независимо от этого.

Но, если бы было все так гладко, не было этой статьи и многих подобных. Дело в том что некоторые задачи требуют затраты системных ресурсов сервера, создавая нагрузку и если такие нагрузки будут постоянными, то это грозит «падению» сайта, то есть хостинг просто отключит его на время.

Что делать если wp-cron.php создает нагрузку?

В общим после какой-то из них добавляете

Перед правкой wp-config.php, сделайте его копию, чтобы в случаи, если что-то пойдет не так, была возможность вернуть все в исходную позицию.

После этого ваш wp-cron.php перестает постоянно работать. Но полное его отключение не очень хорошо, поэтому нужно настроить самим правильное планирование. Для этого нужно уже перейти в личный кабинет на хостинге и посмотреть не настроен ли планировщик (cron) там.

В моем случаи это было не сложно. В панели управления был планировщик и он был настроен на выполнение каждый час. С легкостью можно переключать на другой интервал. Меня это устроило и я оставил его без изменений.

Вам нужно будет найти в панели управления хостингом планировщик (cron) и запустить его. Чаще всего они примерно одинаковы. Там будет поле для команды и выбор времени периодичности запуска. Периодичность выставляйте такую, какую считаете нужной, если сайт имеет очень большую популярность посещения, то ставьте примерно на каждые 5 минут. Если сайт имеет посещение примерно +/-1000 посетителей, то хватит и раз в час. В поле с командой, нужно ввести эту саму команду. В моем случаи она была примерно такой

Бывает рекомендуют вводить такую команду:

Замените имясайта.com на настоящие имя своего сайта.

Если не можете найти в панели управления сайтом планировщик (cron), можете обратится в техподдержку хостинга и спросить у них, как лучше настроить. Если хостинг более-менее нормальный, то вам обязательно помогут.

Если Вы справились с задачей и хотите проверит правильно ли все сделали, то можете проверить результат. Запланируйте публикацию какой-то записи на нужное время. Например если вы запланировали запуск wp-cron.php каждые 5 минут, запланируйте запись через 10, то есть время должно быть немного больше, чтобы точно убедится. Если она опубликуется, значит вы сделали все правильно.

Если Вы обнаружили у себя частые запуски wp-cron.php и излишнюю нагрузку на сайт, то рекомендую вручную настроить периодичность запуска планировщика. Надеюсь моя статья помогла вам хоть немного.

На этом все, спасибо за внимание. 🙂

Если Вам был полезным мой труд, можете финансово поддержать сайт или отключить блокировщик рекламы, что займет 2 минуты 🙂

Источник

WP Cron – всё про планировщик задач WordPress

WP-Cron – это планировщик в WordPress, используемый для запуска периодически выполняемых задач, либо задач, которые должны быть запущены в определённое время.

Также важно упомянуть, что задачи WP-Cron не запускаются автоматически, просто при каждой загрузке страницы происходит сопоставление всех запланированных задач с текущим временем и, если время выполнения уже наступило, задача будет запущена. Это также значит, что если у вас запланирована задача на скажем 5:31 и если посещаемость вашего сайта не очень высокая, то задача скорее всего будет выполнена позднее указанного времени.

Также рекомендую свой видеокурс по созданию темы WordPress на основе готовой вёрстки.

Примеры работы WP-Cron в ядре WordPress

Ниже я приведу таблицу, в которой перечислены события WP-Cron, запланированные непосредственно в ядре WordPress.

Первая колонка таблицы – это хук события, ниже в этом уроке мы научимся использовать его для создания своих событий или для снятия событий из расписания.

Хук событияОписание
wp_version_checkПроверка обновлений ядра WordPress, дважды в день.
wp_update_pluginsПроверка обновлений плагинов, дважды в день.
wp_update_themesПроверка обновлений тем, дважды в день.
wp_scheduled_deleteОчистка корзины, для постов и комментариев, раз в день.
delete_expired_transientsОчистка транзитов раз в день.
wp_scheduled_auto_draft_deleteУдаление авто-черновиков (auto-draft) раз в день.
wp_privacy_delete_old_export_filesУдаление старых файлов экспорта раз в день.
wp_site_health_scheduled_checkПроверка и обновление статуса здоровья сайта раз в неделю.
wp_https_detectionПроверка, поддерживается ли на сайте HTTPS, дважды в день.

WP-Cron — это очень просто, однако я помню то время, когда боялся к нему подступиться. Просто читайте эту статью последовательно и сразу же выполняйте данные здесь примеры и этого будет достаточно, чтобы освоить планировщик задач в WordPress.

Как проверить, что WP-Cron работает на сайте?

Обычно на сайтах WordPress с планировщиком всё окей, однако всё же бывают случаи, когда он не работает. Поэтому, прежде чем перейти к примерам, давайте убедимся, что с ним всё окей.

Используя «Здоровье сайта»

Начиная с версии WordPress 5.2, когда появилась функция Здоровье сайта, это стало делать очень легко – достаточно лишь перейти в Инструменты > Здоровье сайта и проверить, есть ли там рекомендация «Запланированное задание пропущено».

что такое wp cron php. proverka planirovashhika v zdorove sajta. что такое wp cron php фото. что такое wp cron php-proverka planirovashhika v zdorove sajta. картинка что такое wp cron php. картинка proverka planirovashhika v zdorove sajta. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Используя запланированную публикацию записи

Если вдруг у вас стоит старая версия WordPress и вы не можете проверить работу планировщика в Здоровье сайта, то достаточно создать пост и в качестве даты публикации установить время в будущем, ну и понятное дело, чтобы долго ждать не пришлось, можно поставить время на 2 или 5 минут позже текущего.

что такое wp cron php. sozdanie zaplanirovannoj publikacii zapisi. что такое wp cron php фото. что такое wp cron php-sozdanie zaplanirovannoj publikacii zapisi. картинка что такое wp cron php. картинка sozdanie zaplanirovannoj publikacii zapisi. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Если WP_Cron работает на вашем сайте, то пост просто опубликуется через пару минут, а если не работает, то вот что вы получите:

что такое wp cron php. zaplanirovannaja publikacija propushhena. что такое wp cron php фото. что такое wp cron php-zaplanirovannaja publikacija propushhena. картинка что такое wp cron php. картинка zaplanirovannaja publikacija propushhena. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Как починить WP_Cron?

Итак, что же делать, если планировщик отказывается работать на вашем сайте? Сейчас я не буду слишком подробно на этом останавливаться, но дам несколько базовых советов, которые возможно помогут вам разобраться с проблемой.

Всё ещё ничего не получается? Тогда рекомендую попробовать разобраться с супортом хостинга, если не могут помочь, но возможно следует рассмотреть переезд на другой хостинг, например на мой. Дело в том, что проблемы с виртуальным WP_Cron – это проблемы именно с сервером, а значит супорт вам обязан помочь.

Как отключить WP_Cron?

Создание запланированной задачи

Задача, которая выполнится один раз в определённое время

Для этих целей в WordPress существует функция wp_schedule_single_event().

Окей, начало у нас есть, теперь вопрос — куда это вставить? Просто в functions.php не получится, ведь тогда событие будет пытаться запланироваться каждый раз при загрузке/обновлении любой страницы сайта.

Поэтому код непосредственно с запуском этой функции лучше всего добавлять в обработчики форм например. Форма отправлена – событие запланировано. Всё просто.

Это означает, что как только переключиться на текущую тему, событие запланируется.

Незнакомая функция? Читайте подробнее про update_option().

Для вашего удобства вот полностью готовый код из примера.

И напоследок — у функции wp_schedule_single_event() есть ещё один, третий аргумент, который содержит параметры, передаваемые в хук, и тут я предлагаю вам два варианта — вы можете перейти по ссылке на функцию, чтобы почитать о ней подробнее там, либо переходите к следующему примеру, хоть он уже и про другую функцию, но параметр с аргументами работает у них одинаково.

Планируем задачу, которая будет выполняться регулярно через определенные интервалы времени

В этом нам поможет функция wp_schedule_event().

Тут я хочу обратить ваше внимание, что сколько раз вы запустите функцию wp_schedule_event(), то столько раз и запланируется повторяющееся событие!

Вне зависимости от того, куда вы её вставите, сделайте проверку, что точно такая же задача уже не запланирована. В этом вам поможет функция wp_next_scheduled().

Событие считается уникальным, если хотя бы один из передаваемых параметров отличается.

Ну а дальше — функция и хук. Код будет ежечасно отправлять мне сообщения с сайта.

Ну и конечно же готовый код для вашего удобства.

Как задать свой собственный интервал?

По умолчанию в WordPress 4 зарегистрированных интервала времени:

Кстати, в этом коде мы видим временные константы в WordPress, про них я отдельно рассказывал в этом уроке.

Если вас не устраивают стандартные вордпрессовские интервалы времени, вы с лёгкостью можете добавить в этот массив свой собственный.

Делается это предельно просто при помощи следующего хука:

Если не знаете, куда вставлять этот код, читайте.

Всё, интервал зарегистрирован, теперь можно использовать его имя kajd_3_min при планировке повторяющихся событий.

Просмотр запланированных задач

Делается это довольно просто двумя способами — либо через плагин, либо через код. Если вам часто приходится мониторить, то конечно лучше и удобнее воспользоваться плагином, но обо всём по порядку.

Просмотр и отладка через код

Cron-задачи хранятся в виде массива прямо в таблице wp_options базы данных. А значит их можно получить при помощи функции get_option(). И вот как это делается.

В результате они выведутся примерно в таком формате:

что такое wp cron php. prosmotr zaplanirovannyh zadach. что такое wp cron php фото. что такое wp cron php-prosmotr zaplanirovannyh zadach. картинка что такое wp cron php. картинка prosmotr zaplanirovannyh zadach. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

При помощи плагина Advanced Cron Manager

Зная из предыдущей главы, как выводятся задачи, вы теперь с лёгкостью и сами сможете написать плагин для мониторинга, а я поделюсь с вами тем плагином, который использую сам и в общем-то пока он меня устраивает — бесплатный Advanced Cron Manager (добавляйте прямо через админку). Если вы знаете плагины получше, прошу поделиться в комментариях 🙂

Заходим в Инструменты > Список задач планировщика и все задачи перед нами:

что такое wp cron php. advanced cron manager. что такое wp cron php фото. что такое wp cron php-advanced cron manager. картинка что такое wp cron php. картинка advanced cron manager. Допустим, нам нужно, чтобы через 5 часов выполнилась какая-то PHP функция. Или нужно, чтобы эта функция выполнялась каждый день. Решить такие задачи поможет WordPress Крон — планировщик задач. Ниже, давайте разберемся как он работает и как его использовать.

Как удалить запланированную задачу из расписания?

Удаление задач происходит при помощи одной из двух функций — wp_clear_scheduled_hook() или wp_unschedule_event(), отличие второй от первой заключается в том, что она может удалить более конкретную задачу, если вам интересны подробности, переходите по ссылкам и читайте описания этих функций.

Что же касается наших примеров 1 и 2, для удаления этих событий нам подойдёт любая из них, поэтому давайте первое событие с хуком misha_hook_1 удалим функцией wp_clear_scheduled_hook(), а второе с хуком misha_action_hook функцией wp_unschedule_event().

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *