Отладка WordPress крона перевод
Несомненным лидером для отладки WordPress крона всегда являлся плагин WP-Crontrol , через который можно было увидеть список запланированных и выполняющихся в данный момент задач или добавить новую задачу.
Но что делать, если вы не хотите ставить еще один плагин или вы заядлый линуксоид, который привык работать через командную строку? Тут на помощь приходит WP-CLI.
Установка WP-CLI
Скачайте файл wp-cli.phar, используя wget
или curl
:
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Убедитесь, что свежескачанный файл валидный и рабочий:
php wp-cli.phar --info
Для использования WP-CLI из командной строки (будете печатаь wp
) сделайте файл исполняемым и добавьте его в ваш PATH
:
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Если WP-CLI установлен корректно, то при вводе команды wp --info
вы должны получить примерно такой вывод:
PHP binary: /usr/bin/php5
PHP version: 5.5.9-1ubuntu4.14
php.ini used: /etc/php5/cli/php.ini
WP-CLI root dir: /home/wp-cli/.wp-cli
WP-CLI packages dir: /home/wp-cli/.wp-cli/packages/
WP-CLI global config: /home/wp-cli/.wp-cli/config.yml
WP-CLI project config:
WP-CLI version: 1.1.0
Как отлаживать
Чтобы вывести на экран вообще все имеющиеся задачи, вбейте:
wp cron event list
Вы увидите примерно такую картинку:
+--------------------------------+---------------------+--------------------+-----------------------+
| hook | next_run_gmt | next_run_relative | recurrence |
+--------------------------------+---------------------+--------------------+-----------------------+
| w3_pgcache_cleanup | 2016-08-16 19:16:01 | now | 6 minutes |
| w3_pgcache_prime | 2016-08-16 19:17:01 | now | 5 minutes |
| w3_objectcache_cleanup | 2016-08-16 19:31:26 | 12 seconds | 16 minutes 40 seconds |
| woocommerce_geoip_updater | 2016-09-01 16:30:00 | 2 weeks 1 day | 1 month |
+--------------------------------+---------------------+--------------------+-----------------------+
Для удаления конкретной задачи используйте:
wp cron event delete woocommerce_geoip_updater
Для запуска ближайших заданий в режиме отладки:
wp cron event run --due-now --debug
Вы получите похожий вывод:
Debug (bootstrap): No readable global config found (0.006s)
Debug (bootstrap): No project config found (0.007s)
Debug (bootstrap): Loading packages from: /var/www/.wp-cli/packages/vendor/autoload.php (0.103s)
Debug (bootstrap): ABSPATH defined: /var/www/ (0.104s)
Debug (bootstrap): Begin WordPress load (0.104s)
Debug (bootstrap): wp-config.php path: /var/www/wp-config.php (0.104s)
Debug (bootstrap): Loaded WordPress (0.334s)
Debug (bootstrap): Running command: cron event run (0.334s)
Executed the cron event 'w3_pgcache_cleanup' in 0.022s.
Executed the cron event 'w3_pgcache_prime' in 2.002s.
Executed the cron event 'w3_objectcache_cleanup' in 1.673s.
Success: Executed a total of 3 cron events.
Еще больше примеров использования утилиты WP-CLI смотрите на официальном сайте проекта.