我有一个插件,它可以设置一个预定的事件,并且对我自己和除一个用户以外的所有用户都运行良好。在他的服务器上,计划的事件在正常工作数小时/天后以某种方式被神秘地删除。我需要一些关于如何找出这是如何发生的想法。
当激活时,插件创建事件(并且仅在插件停用时将其删除)
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\');
}