Comment déboguer WordPress “Cron” wp_schedule_event

21

Comment puis-je déboguer des problèmes avec WordPress Cron? Je pense que cela se déclenche lorsque les utilisateurs accèdent à votre site, mais aucune erreur ne leur sera signalée, car les tâches sont exécutées "de manière asynchrone". Alors, comment puis-je déboguer les erreurs?

J'utilise wp schedule event

    
posée Jiew Meng 31.03.2011 - 16:24

4 réponses

27

Vous pouvez exécuter WP cron manuellement en appelant: http://example.com/wp-cron.php?doing_wp_cron

Si vous ne voulez pas que le cron automatique s'exécute pendant le débogage, ajoutez ceci à votre fichier /wp-config.php :

define('DISABLE_WP_CRON', true);

Si vous êtes dans un environnement de développement et que vous souhaitez générer des informations de débogage, appelez-le manuellement pour afficher votre résultat.

Sinon, vous pouvez utiliser la fonction error_log de PHP pour consigner les chaînes de message contenant l'erreur. connectez-vous pour le débogage. Vous devez l’utiliser conjointement avec les paramètres de WP_DEBUG , mentionnés par Rarst.

    
réponse donnée gabrielk 31.03.2011 - 20:15
6

Vous pouvez utiliser le plug-in Cron-View . Là, vous pouvez voir si votre travail est a) enregistré et b) quelle est la prochaine échéance.

De plus, vous pouvez ajouter un programmateur inférieur à votre événement (par exemple toutes les 2 min) et tester votre méthode plus fréquemment sur un système local. Utilisez le crochet de filtre 'cron_schedules' pour enregistrer les nouvelles heures de planification. Par exemple:

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');
    
réponse donnée rofflox 31.03.2011 - 17:22
3

Vous pouvez (et probablement dans tous les cas, cron ou non) configurer le journal des erreurs PHP pour capturer toutes les erreurs.

    
réponse donnée Rarst 31.03.2011 - 17:10
2

Vous pouvez déboguer manuellement en créant une action et en exécutant l'action Cron à l'intérieur. Comme ceci:

add_action( 'init', function() {

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

    error_reporting( 1 );

    do_action( 'this_is_cron_event_hook' );

    die();

} );

Et en vous rendant à l'adresse de votre site Web: http://example.com?the_cron_test

Ceci devrait vous montrer les erreurs éventuelles avec la tâche périodique.

Mais c'est sans aucun sens de le faire manuellement. Vous pouvez utiliser le plug-in Advanced Cron Manager PRO qui le fait pour vous et enregistre également le journal et autres statistiques.

    
réponse donnée WPMaster 24.07.2017 - 15:28

Lire d'autres questions sur les étiquettes