wp-cron.php — друг или враг? Отключение wp-cron.php

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

195.1.***.*** — — [12/Sep/2015:04:11:00 +0300] «POST /wp-cron.php?doing_wp_cron=1442193059.4414520263671875000000 HTTP/1.0» 499 0 «-» «WordPress/4.3; https://****.com» «-»
195.1.***.*** — — [12/Sep/2015:04:15:00 +0300] «POST /wp-cron.php?doing_wp_cron=1442209914.0411450862884521484375 HTTP/1.0» 499 0 «-» «WordPress/4.3; https://****.com» «-»
195.1.***.*** — — [12/Sep/2015:04:15:10 +0300] «POST /wp-cron.php?doing_wp_cron=1442209914.0411450862884521484375 HTTP/1.0» 499 0 «-» «WordPress/4.3; https://****.com» «-»
195.1.***.*** — — [12/Sep/2015:04:15:13 +0300] «POST /wp-cron.php?doing_wp_cron=1442209914.0411450862884521484375 HTTP/1.0» 499 0 «-» «WordPress/4.3; https://****.com» «-»

из лога видно, что сам WordPress шёлт POST запросы к wp-cron.php.

За что отвечает wp-cron.php

wp-cron.php это скрипт, который выполняет ряд задач, а именно:

  • публикация отложенных постов;
  • проверка обновлений (WP, плагины и шаблоны);
  • рассылка уведомлений о новых комментариях;
  • оповещение о новых постах;

и так далее.

Задач у данного скрипта немало, следовательно он нужен. Однако столь частый запуск является ресурсоёмким удовольствием и может вызвать нехватку оперативной памяти на младших тарифах хостинга для wordpress.

Отключение wp-cron.php

Очевидным решением в такой ситуации для нас стал отключение автоматического запуска wp-cron.php самим WordPress. Делается это достаточно просто. Добавьте такой код в конфигурационный файла wp-config.php  (например после define (‘WPLANG’, ‘ru_RU’); )

define('DISABLE_WP_CRON', true);

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

curl "http://domen.com/wp-cron.php?doing_wp_cron"

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

  • Janna Kostyakova

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

  • Руслан Тараник

    Нужно на всякий случай тоже попробовать отключить WP-CRON.PHP. А если раз в сутки запуск этот сделать? Не слишком редко? Будут оповещения и уведомления показываться или нет?))

  • Алексей Палко

    Бывали случаи и похуже. Мое решение было отключить этот плагин. Пусть лучше система будет более свободной. Так и железу будет лучше, да и поддержку не отвлекать постоянными проблемами. Отключение и не такое критичное, как кажется со стороны

  • Alex111

    У меня wp-cron.php запускается не часто, но сейчас на всякий случай поставил на раз в сутки обрабатываться по крону OC. Проблем никаких. ещё и ресурсы лишние не потребляет.

Комментарии для сайта Cackle
This site is using cookie files, Google Analytics system to collect statistics about website visitors and also collects data like your IP and geolocation. More in our policy.
By continuing to use current website you are automatically agreed with using described technologies.