Инструкция WordPress cron, запуск, управление, решение ошибок, основные параметры

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

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

Как запускается WP-Cron?

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

Проблемы с сайтами с низкой посещаемостью

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

Проблемы с сайтами с высокой посещаемостью

Если ваш сайт на WordPress имеет высокий трафик, у вас могут возникнуть проблемы с WP-Cron. Основные возникающие проблемы – это состояние гонки и длительные процессы . Состояние состязания : когда несколько пользователей посещают ваш сайт и запускают WP-Cron для выполнения одной и той же задачи. WP-Cron усердно работает над устранением условий гонки, но они все еще могут происходить, особенно на сайтах с высокой посещаемостью. Длительный процесс : любая задача, выполнение которой занимает больше стандартных 60 секунд. Разработчики могут настроить, как долго задача PHP может выполняться с set_time_limit()функцией. Если он настроен так, чтобы он был длиннее, чем окно между задачами, вы можете получить более одной копии wp-cron.php выполнения. Обе эти проблемы решаются с помощью внутренней блокировки WP-Cron и не являются общими проблемами; тем не менее, они все еще могут происходить время от времени.

Управление WP-Cron

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

Плагины для Cron

Если вы хотите следить за WP-Cron, но вам не нравится командная строка, вы можете использовать несколько плагинов. Например, WP Crontrol покажет вам все события, запланированные для вашего сайта. Вы можете создавать, редактировать, запускать или удалять задания сразу из панели администратора WordPress. Вы также можете подключить новые действия к расписаниям или переместить существующие действия в новые расписания из раздела «Инструменты». WPX Cron Manager Lite выполнит аналогичную работу с немного другим пользовательским интерфейсом. Этот плагин требует от вас одноразовой установки фреймворка WPX, которую вы можете сделать прямо со страницы диспетчера плагинов.

Внешнее управление WP-Cron

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

Отключить WP-Cron

Первое, что вам нужно сделать, это отключить внутреннюю обработку WP-Cron. Добавьте в свой wp-config.php файл следующую строку :

wp-config.php

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

Создать крон задание

Настройте работу, которая требует https://yourdomain.tld/wp-cron.php?doing_wp_cron Замените yourdomain.tld своим доменом. В зависимости от того, какой сервис вы используете, у вас может быть возможность настроить несколько заданий в разное время. wp-cron.phpВсе, что вам нужно, – это создать одно задание, которое вызывает скрипт вашего сайта каждые 15 минут. Об остальном позаботится WP-Cron. Если вы создаете новые расписания, которые нужно запускать чаще, чем каждые 15 минут, вам нужно будет соответствующим образом скорректировать свою работу. Важно, чтобы вы не добавляли значение в doing_wp_cron переменную запроса; для правильной работы cron он должен быть пустым.

Использование на VPS или сервере

Если вы администрируете свой собственный сервер, вы можете использовать службу cron для вызова wp-cron.phpскрипта. Вам нужно будет узнать, как правильно настроить задание Cron и использовать что-то вроде wgetили curlдля получения веб-страницы. Если вы не примете особых мер предосторожности, использование вашего собственного сервера ничуть не безопаснее, чем веб-служба cron; однако это дает вам больше контроля.

Безопасность работы Cron

По большей части wp-cron.php безопасно. Вы можете передать только один параметр, который повлияет на script ( doing_wp_cron). Это $_GET значение не фильтруется; он используется только как флаг, а не как ввод для процесса или переменной. В остальном весь ввод игнорируется. Хотя ни один сценарий на сервере, подключенном к Интернету, не является на 100% безопасным, в wp-cron.phpнастоящее время он не содержит известных уязвимостей или эксплойтов.

Плагины WordPress Cron

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

Ошибки WordPress Cron

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

Если ваш сайт размещен на управляемой службе WordPress, свяжитесь с вашим хостером и отправьте ему сообщение об ошибке. Они лучше всего смогут помочь вам и, вероятно, уже сталкивались с подобной проблемой. Если вы не пользуетесь услугами управляемого хостинга WordPress, попробуйте найти сообщение об ошибке с помощью вашей любимой поисковой системы. Если вы не можете диагностировать проблему, опубликуйте сообщение об ошибке в новой теме на основном форуме поддержки wordpress.org, где, возможно, вам поможет доброволец.

Распространенные ошибки Cron

Ошибка cURL 6: Не удалось разрешить домен

Это означает, что существует проблема с конфигурацией DNS вашего домена или вашего сервера. Доменное имя не указывает на действительный IP-адрес, или ваш сервер не имеет актуальной информации DNS.

cURL error 7: Failed to connect: Connection refused

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

cURL error 28: Операция завершилась через 3000 миллисекунд с получением 0 байт

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

cURL error 35: sslv3 alert handshake failure

Это означает, что существует проблема с вашей конфигурацией HTTPS. Ваш сервер не может безопасно подключиться к самому себе.

Неожиданный код ответа HTTP: 401 или 403 – Unexpected HTTP response code: 401 or 403

Это означает, что ограничение контроля доступа, такое как BasicAuth, брандмауэр, плагин безопасности или конфиденциальности или правило .htaccess не позволяют вашему серверу получить доступ к wp-cron.php.

Неожиданный код ответа HTTP: 404 – Unexpected HTTP response code: 404

Это означает, что файл wp-cron.php в корне вашего сайта был удален. Попробуйте переустановить WordPress из окна Dashboard -> Updates.

Неожиданный код ответа HTTP: 500 или выше – Unexpected HTTP response code: 500 or higher

Это означает, что на вашем сервере произошла ошибка, которая препятствует запуску cron spawner. Проверьте журналы ошибок на вашем сервере.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

53 + = 58

OK2WEB
OK2WEB
Более 12 лет занимаюсь разработкой и продвижением сайтов. Городские порталы, информационные и новостные сайты. Сейчас в основном разрабатываю интернет магазины и коммерческие сайты. Если у вас есть вопросы пишите, стараюсь оперативно ответить и помочь.

Как использовать частный адрес Wi-Fi на iPhone и iPad

Последняя мобильная операционная система Apple предоставляет новую функцию безопасности, называемую частным адресом . Это помогает защитить ваши личные данные в общедоступных или незнакомых сетях Wi-Fi. У каждого устройства есть собственный встроенный адрес. Эта новая функция случайным образом создает новый адрес, поэтому ваше устройство с меньшей вероятностью будет идентифицировано злоумышленниками. Это...

Учимся делать и управлять title и description для страниц сайта плагином Seopress (уроки SEO)

Из всей когорты seo плагинов Wordpress, которых достаточно много  я обычно выделяю SEOpress и работаю больше с ним. Из плюсов которые я выделяю для себя: очень понятный интерфейс охватывающий все детали seo оптимизации сайта, удобные настройки, возможность кастомизации. В общем для вас рекомендую также....

Проблема обновления Centos и Docker, что делать если не обновляется

На одном из серверов у себя уже месяца 4 не мог произвести обновления, возникал конфликт Docker с Centos. Плюс к этому надо прибавить установленный ISP manager и сайты на двух базах, одна из них основная Mysql 8 и вторая как раз таки в контейнере...

Как оптимизировать свой сайт для показателей Google Core Web Vitals

Контент остается решающим. Но если вы сравните два сайта с одинаковым текстом и популярностью, то тот, который предлагает лучший веб-опыт, получит более высокий приоритет в результатах поиска Google. Помимо улучшенного рейтинга страницы, высокопроизводительные сайты могут быть включены в карусель мобильного поиска. Ранее это было зарезервировано для ускоренных мобильных...

Core Web Vitals и WordPress SEO, скорость сайта как фактор ранжирования

В мае 2020 года Google объявил, что показатели качества страниц под названием «Core Web Vitals» станут фактором ранжирования в поиске Google. Это было наконец выпущено как часть обновления опыта страницы в июне 2021 года. Многие владельцы веб-сайтов упорно работают над улучшением своих показателей Core Web Vitals...

Ошибка добавления записей и постов в WordPress, решаем проблему с базой данных

Работая с одним из проектов заказчика столкнулся с ошибкой добавления постов. Они просто не добавлялись, залез в базу там висят несколько постов без номеров и перекрывают возможность добавлять новые. Ошибка Начал ковырять и вот как получилось исправить данную проблему Сделал резервную копию с помощью опции...