Задачи WP-Cron запланированы, но не выполняются

24 дек. 2013 г., 03:43:50
Просмотры: 17.3K
Голосов: 4

Я работаю с очень крупной сетью WordPress Multisite и столкнулся с проблемами в работе WP-Cron. Задачи WP-Cron планируются, но не выполняются.

Задачи WP-Cron не запускаются ни на staging, ни на production окружениях, хотя локально они работают нормально. Все инстансы идентичны — Multisite с одинаковым набором сайтов, одной и той же темой и одинаковыми плагинами (и версиями плагинов). Есть небольшие различия в версии PHP на сервере и в моей локальной среде, но версии WP одинаковые (немного устаревшие — 3.5.2).

Я пробовал очищать очередь и обращаться к cron-скрипту напрямую (/wp-cron.php?doing_wp_cron), но без успеха. Даже пытался запланировать вызов этого скрипта в реальном cronjob, но результат тот же — ничего не работает.

Я дважды проверил, что DISABLE_WP_CRON отсутствует в файле wp-config, и даже экспериментировал с определением этой константы как false.

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

3
Комментарии

Есть ли у вас доступ к логам сервера на тестовом и рабочем окружении? Проверьте, нет ли там ошибок, связанных с wp_cron.php.

Pat J Pat J
24 дек. 2013 г. 04:09:36

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

TomC TomC
24 дек. 2013 г. 10:43:31

Поздний комментарий: а что насчёт временных зон, установленных в ваших двух окружениях (тестовом и рабочем)? В таком случае можно попробовать использовать PHP-функцию date_default_timezone_set("Europe/Rome"); (разумеется, укажите свой локальный часовой пояс)

Erenor Paz Erenor Paz
9 февр. 2017 г. 13:31:47
Все ответы на вопрос 1
0

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

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

Затем вам нужно будет вручную создать cron-задачу (используя Cpanel, если у вас виртуальный хостинг, или через терминал, если это VPS/выделенный сервер), которая будет посещать эту страницу каждые несколько минут.

Надеюсь, это поможет!

Ссылка: WP Cron не выполняется по истечении времени

9 окт. 2019 г. 08:29:36