Як налагодити WordPress "Cron" wp_schedule_event


22

Як я можу налагоджувати проблеми з WordPress Cron? Я думаю, що це спрацює, коли користувачі переходять на ваш сайт, але будь-які помилки їм не показуватимуться, оскільки завдання виконуються "асинхронно". То як я можу налагоджувати помилки?

я використовую wp schedule event


1
Прочитайте цю документацію: developer.wordpress.org/plugins/cron/…
Nanhe Kumar

Використовуйте плагін Advanced Cron Manager
Гість

Відповіді:


27

Ви можете запустити WP cron вручну, зателефонувавши: http://example.com/wp-cron.php?doing_wp_cron

Якщо ви не хочете, щоб автоматичний cron запускався під час налагодження, додайте це у свій /wp-config.phpфайл:

define('DISABLE_WP_CRON', true);

Якщо ви перебуваєте в середовищі розробки та хочете виводити інформацію про налагодження, виклик її вручну, як це, покаже ваш вихід налагодження.

Як альтернативи ви можете використовувати вбудований в PHP error_log функцію для входу рядки повідомлень в журнал помилок для налагодження. Ви повинні були б використовувати це в поєднанні з настройками WP_DEBUG , як уже згадувалося Rarst.


Дякую за підказку з ?doing_cronпараметром.
rofflox

3
Я вважаю, що має бути ?doing_wp_cronзамість цього ?doing_cron.
liviucmg

@liviucmg Так, ти маєш рацію. Я зробив щипку.
Саймон Іст

1
Чи ?doing_wp_cronпотрібен параметр? Дивіться посібник з налаштування посібника EasyCron .
AlecRust

@gabrielk Чи потрібен параметр? doing_cron? що це означає?
jedi

6

Ви можете використовувати плагін Cron-View . Там ви можете побачити, чи є ваша робота а) зареєстрована та б) яка наступна пора.

Крім того, ви можете додати менший таймер розкладу до своєї події (наприклад, кожні 2 хв) і частіше випробовувати свій метод у локальній системі. Використовуйте гачок фільтра "cron_schedules", щоб зареєструвати нові часи розкладу. Наприклад:

function my_additional_schedules($schedules) {
    // interval in seconds
    $schedules['every2min'] = array('interval' => 2*60, 'display' => 'Every two minutes');
    return $schedules;
}
add_filter('cron_schedules', 'my_additional_schedules');


3

Ви можете налагоджувати вручну, створюючи дію та виконуючи дію Cron всередині. Подобається це:

add_action( 'init', function() {

    if ( ! isset( $_GET['the_cron_test'] ) ) {
        return;
    }

    error_reporting( 1 );

    do_action( 'this_is_cron_event_hook' );

    die();

} );

І перейдіть за адресою вашого веб-сайту: http://example.com?the_cron_test

Це повинно показати вам будь-які помилки із завданням cron.

Але це без сенсу робити це вручну. Ви можете використовувати плагін Advanced Cron Manager PRO, який робить це для вас, а також зберігає журнал та інші статистичні дані.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.