WP_SCHEDULED_EVENT被神秘删除

时间:2014-12-20 作者:johnh10

我有一个插件,它可以设置一个预定的事件,并且对我自己和除一个用户以外的所有用户都运行良好。在他的服务器上,计划的事件在正常工作数小时/天后以某种方式被神秘地删除。我需要一些关于如何找出这是如何发生的想法。

当激活时,插件创建事件(并且仅在插件停用时将其删除)

wp_schedule_event( time(), \'aps_schedule\', \'aps_auto_post_hook\' );
然后设置cron\\u时间表,我添加了一些调试代码:

add_filter(\'cron_schedules\', \'aps_set_next_schedule\', 99);
function aps_set_next_schedule($schedules) { 

    // debug section:
    aps_write_log( "hjakhrw3 - setting cron schedule \'aps_schedule\'" ); 
    $scheduledtime = wp_next_scheduled(\'aps_auto_post_hook\');
    if ($scheduledtime)
        aps_write_log( "hjakhrw3 - \'aps_auto_post_hook\' is set" ); 
    else
        aps_write_log( "hjakhrw3 - \'aps_auto_post_hook\' is NOT set." ); 

    $timesecs = aps_time_seconds(get_option(\'aps_next\'),get_option(\'aps_next_time\'));
    $schedules[\'aps_schedule\'] = array(
        \'interval\' => $timesecs, \'display\' => \'APS Scheduler Check\'
    );
return $schedules;
}
现在,在成功运行了许多小时并完成了它之后,突然:

2014-12-20 04:05:37  - hjakhrw3 - setting cron schedule \'aps_schedule\'
2014-12-20 04:05:37  - hjakhrw3 - \'aps_auto_post_hook\' is set
2014-12-20 04:05:56  - hjakhrw3 - setting cron schedule \'aps_schedule\'
2014-12-20 04:05:56  - hjakhrw3 - \'aps_auto_post_hook\' is set
2014-12-20 04:07:03  - hjakhrw3 - setting cron schedule \'aps_schedule\'
2014-12-20 04:07:03  - hjakhrw3 - \'aps_auto_post_hook\' is NOT set. 
2014-12-20 04:08:31  - hjakhrw3 - setting cron schedule \'aps_schedule\'
2014-12-20 04:08:31  - hjakhrw3 - \'aps_auto_post_hook\' is NOT set. 
因此,在04:05:56和04:07:03之间,有东西删除了计划事件“aps\\u auto\\u post\\u hook”,而不是插件,因为它只在停用时删除它。我怀疑有其他代码/插件-但我如何才能发现??如果插件没有被停用,我就无法安排活动。。。

P、 如果有人问我,我的停用代码,虽然在这种情况下没有调用:

register_deactivation_hook( __FILE__, \'aps_deactivation\' );
function aps_deactivation() {
    wp_clear_scheduled_hook(\'aps_auto_post_hook\');
}

1 个回复
SO网友:RitterKnight

我会尝试以下几件事:

当WP没有足够的内存时,我经常看到插件的奇怪行为。您可能想提高PHP和WordPress的内存限制,看看您是否仍然会遇到这种奇怪的行为。

WP Cron只在页面加载时运行,因此在4:05到4:07之间(或当您遇到奇怪的行为时),请检查服务器的访问和错误日志,看看在这段时间内还有什么可能会影响到它,或者WP是否以某种方式出现故障。

你可能很想试试像这样的插件WP Crontrol 看看这段时间还有什么可能发生。

结束

相关推荐