Source
File: wp-includes/cron.php
function wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array() ) {
if ( ! is_numeric( $timestamp ) || $timestamp <= 0 ) {
return false;
}
$schedules = wp_get_schedules();
$interval = 0;
if ( isset( $schedules[ $recurrence ] ) ) {
$interval = $schedules[ $recurrence ]['interval'];
}
if ( 0 === $interval ) {
$scheduled_event = wp_get_scheduled_event( $hook, $args, $timestamp );
if ( $scheduled_event && isset( $scheduled_event->interval ) ) {
$interval = $scheduled_event->interval;
}
}
$event = (object) array(
'hook' => $hook,
'timestamp' => $timestamp,
'schedule' => $recurrence,
'args' => $args,
'interval' => $interval,
);
$pre = apply_filters( 'pre_reschedule_event', null, $event );
if ( null !== $pre ) {
return $pre;
}
if ( 0 == $interval ) {
return false;
}
$now = time();
if ( $timestamp >= $now ) {
$timestamp = $now + $interval;
} else {
$timestamp = $now + ( $interval - ( ( $now - $timestamp ) % $interval ) );
}
return wp_schedule_event( $timestamp, $recurrence, $hook, $args );
}