如何调试WordPress“Cron”wp_Schedule_Event

时间:2011-03-31 作者:Jiew Meng

如何调试WordPress Cron的问题?我认为当用户访问您的站点时,它会触发,但不会向他们显示任何错误,因为作业是“异步”运行的。那么如何调试错误呢?

我使用wp schedule event

4 个回复
最合适的回答,由SO网友:gabrielk 整理而成

您可以通过调用以下命令手动运行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 settings, 如Rarst所述。

SO网友:WPMaster

您可以通过创建一个操作并在其中执行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 插件,它可以为您执行此操作,还可以保存日志和其他统计信息。

SO网友:Roman

你可以使用插件Cron-View. 在那里,你可以看到你的工作是否a)已注册,b)下一个到期时间是什么。

此外,您可以为事件添加较低的时间表计时器(例如,每2分钟一次),并在本地系统上更频繁地测试您的方法。使用“cron\\u 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\');

SO网友:Rarst

您可以(而且可能在任何情况下都应该这样做,无论是否使用cron)configure PHP error log 捕获所有错误。

结束

相关推荐

如何记录插件(Cron)操作?

是否有推荐的方法从插件中记录(失败的)cron操作?例如,我有一个插件,它每小时与外部服务同步一次。我想记录更改了多少,以及同步失败的时间。你有什么建议吗?新的数据库表?这个Log Deprecated Notices 插件使用自定义的帖子类型来实现这一点,但这可能会带来太多的开销?我相信WordPress does not come with a standard logging package?