Август
19
2011

Настройка WP-Cron

Настройка WP-Cron

Описанный способ использования файлов WP Super Cache в nginx оказался очень хорош, настолько хорош, что перестали нормально работать запланированные события: отсроченная публикация постов, очистка кеша, BackWPup. Все дело в вызовах cron. WordPress устроен так, что при выполнении PHP проверяется очередь заданий, если в очереди что-то есть, то действие выполняется. А так как вызовов PHP стало ничтожно мало, то пришлось настраивать дополнительные вызовы php сервером.

Планирование вызовов wp-cron.php

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

Самый простой способ вызова — скачать его через wget. Я настроил проверку на каждые 10 минут. Для этого в консоли вызываем редактор расписаний:

sudo crontab -e

И вписываем туда вызовы

5 * * * * wget http://tigors.net/wp-cron.php > /dev/null 2>&1
15 * * * * wget http://tigors.net/wp-cron.php > /dev/null 2>&1
25 * * * * wget http://tigors.net/wp-cron.php > /dev/null 2>&1
35 * * * * wget http://tigors.net/wp-cron.php > /dev/null 2>&1
45 * * * * wget http://tigors.net/wp-cron.php > /dev/null 2>&1
55 * * * * wget http://tigors.net/wp-cron.php > /dev/null 2>&1

Либо можно сделать тоже в одну строку

5,15,25,35,45,55 * * * * wget http://tigors.net/wp-cron.php > /dev/null 2>&1

2>&1 > /dev/null отправляет вывод в пустоту. Учитывая, что wp-cron не возвращает текст, то писать в лог особого смысла нет.

Отключение WP-Cron в обычных вызовах

Если вызов wp-cron по расписанию настроен, то логично убрать вызов cron при запросах от пользователей, чтобы не тратить ресурсы.

В файле wp-config.php вписываем новую строчку.

define('DISABLE_WP_CRON', true);

Теперь при выводе страниц расписания проверятся не будут.

 

 

Неправильная раскладка: yfcnhjqrf цз-скщт

Понравилась статья? Посоветуйте друзьям!

Cron Linux nginx PHP WordPress


Понравилась статья? Подпишись на рассылку по E-Mail или в RSS.
  • Wds4
    Во первых можно написать и так (каждые 10 минут): */10 * * * * wget http://tigors.net/wp-cron.php > /dev/null 2>&1 Во вторых нужно учитывать что при добавлении задания в крон, команда wget может быть не вызвана, так как на большенстве хостингов нужно вызывать все программы из крона по полному поти. Если есть доступ по SSH, заходим по нему, вбиваем команду \"whereis wget\" без кавычек, нам пишет полный путь, например: \"wget: /usr/local/bin/wget\", теперь команду нужно подправить следующим образом: */10 * * * * /usr/local/bin/wget http://tigors.net/wp-cron.php > /dev/null 2>&1 Все, теперь будет все отлично работать.
  • Wds5
    >так как на большенстве хостингов нужно вызывать все программы из крона по полному поти Дело вовсе не в хостинге, а в работе самого крона, это в мануале ведь написано, дело в том, что когда крон запускает, что либо у это \"либо\" просто нет переменных окружения и соотвественно путей где искать прогу...
  • Wds5
    >так как на большенстве хостингов нужно вызывать все программы из крона по полному поти Дело вовсе не в хостинге, а в работе самого крона, это в мануале ведь написано, дело в том, что когда крон запускает, что либо у это \"либо\" просто нет переменных окружения и соотвественно путей где искать прогу...