WordPress.org

Make WordPress Core

Changeset 36184


Ignore:
Timestamp:
01/06/2016 12:23:15 PM (5 years ago)
Author:
dd32
Message:

Background Updates: Remove the 7am/7pm background update check.

This changeset is a more basic version of [36180], clearing the extra now redundant schedule.
As the functionality for this was introduced in 3.9, [28129] has been backported to 3.7/3.8, allowing the API TTL to be respected by those versions.

See #27772.
Fixes #35323.

Location:
branches
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • branches/3.7

  • branches/3.7/src

  • branches/3.7/src/wp-includes/update.php

    r27930 r36184  
    147147        $updates->translations = $body['translations'];
    148148
    149     set_site_transient( 'update_core',  $updates);
     149    set_site_transient( 'update_core', $updates );
     150
     151    if ( ! empty( $body['ttl'] ) ) {
     152        $ttl = (int) $body['ttl'];
     153        if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) {
     154            // Queue an event to re-run the update check in $ttl seconds.
     155            wp_schedule_single_event( time() + $ttl, 'wp_version_check' );
     156        }
     157    }
     158
     159    // Trigger background updates if running non-interactively, and we weren't called from the update handler.
     160    if ( defined( 'DOING_CRON' ) && DOING_CRON && 'wp_maybe_auto_update' != current_filter() ) {
     161        do_action( 'wp_maybe_auto_update' );
     162    }
    150163}
    151164
     
    198211            break;
    199212        default :
    200             $timeout = 12 * HOUR_IN_SECONDS;
     213            if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
     214                $timeout = 0;
     215            } else {
     216                $timeout = 12 * HOUR_IN_SECONDS;
     217            }
    201218    }
    202219
     
    345362            break;
    346363        default :
    347             $timeout = 12 * HOUR_IN_SECONDS;
     364            if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
     365                $timeout = 0;
     366            } else {
     367                $timeout = 12 * HOUR_IN_SECONDS;
     368            }
    348369    }
    349370
     
    586607        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
    587608
    588     if ( ! wp_next_scheduled( 'wp_maybe_auto_update' ) && ! defined( 'WP_INSTALLING' ) ) {
    589         // Schedule auto updates for 7 a.m. and 7 p.m. in the timezone of the site.
    590         $next = strtotime( 'today 7am' );
    591         $now = time();
    592         // Find the next instance of 7 a.m. or 7 p.m., but skip it if it is within 3 hours from now.
    593         while ( ( $now + 3 * HOUR_IN_SECONDS ) > $next ) {
    594             $next += 12 * HOUR_IN_SECONDS;
    595         }
    596         $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    597         // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
    598         $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
    599         wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
    600     }
     609    if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') )
     610        wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
    601611}
    602612
  • branches/3.8

  • branches/3.8/src/wp-includes/update.php

    r27929 r36184  
    155155        $updates->translations = $body['translations'];
    156156
    157     set_site_transient( 'update_core',  $updates);
     157    set_site_transient( 'update_core', $updates );
     158
     159    if ( ! empty( $body['ttl'] ) ) {
     160        $ttl = (int) $body['ttl'];
     161        if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) {
     162            // Queue an event to re-run the update check in $ttl seconds.
     163            wp_schedule_single_event( time() + $ttl, 'wp_version_check' );
     164        }
     165    }
     166
     167    // Trigger background updates if running non-interactively, and we weren't called from the update handler.
     168    if ( defined( 'DOING_CRON' ) && DOING_CRON && 'wp_maybe_auto_update' != current_filter() ) {
     169        do_action( 'wp_maybe_auto_update' );
     170    }
    158171}
    159172
     
    206219            break;
    207220        default :
    208             $timeout = 12 * HOUR_IN_SECONDS;
     221            if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
     222                $timeout = 0;
     223            } else {
     224                $timeout = 12 * HOUR_IN_SECONDS;
     225            }
    209226    }
    210227
     
    353370            break;
    354371        default :
    355             $timeout = 12 * HOUR_IN_SECONDS;
     372            if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
     373                $timeout = 0;
     374            } else {
     375                $timeout = 12 * HOUR_IN_SECONDS;
     376            }
    356377    }
    357378
     
    594615        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
    595616
    596     if ( ! wp_next_scheduled( 'wp_maybe_auto_update' ) && ! defined( 'WP_INSTALLING' ) ) {
    597         // Schedule auto updates for 7 a.m. and 7 p.m. in the timezone of the site.
    598         $next = strtotime( 'today 7am' );
    599         $now = time();
    600         // Find the next instance of 7 a.m. or 7 p.m., but skip it if it is within 3 hours from now.
    601         while ( ( $now + 3 * HOUR_IN_SECONDS ) > $next ) {
    602             $next += 12 * HOUR_IN_SECONDS;
    603         }
    604         $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    605         // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
    606         $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
    607         wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
    608     }
     617    if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') )
     618        wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
    609619}
    610620
  • branches/3.9/src/wp-includes/update.php

    r28145 r36184  
    612612        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
    613613
    614     if ( ! wp_next_scheduled( 'wp_maybe_auto_update' ) && ! defined( 'WP_INSTALLING' ) ) {
    615         // Schedule auto updates for 7 a.m. and 7 p.m. in the timezone of the site.
    616         $next = strtotime( 'today 7am' );
    617         $now = time();
    618         // Find the next instance of 7 a.m. or 7 p.m., but skip it if it is within 3 hours from now.
    619         while ( ( $now + 3 * HOUR_IN_SECONDS ) > $next ) {
    620             $next += 12 * HOUR_IN_SECONDS;
    621         }
    622         $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    623         // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
    624         $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
    625         wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
    626     }
     614    if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') )
     615        wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
    627616}
    628617
  • branches/4.0/src/wp-includes/update.php

    r29226 r36184  
    634634        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
    635635
    636     if ( ! wp_next_scheduled( 'wp_maybe_auto_update' ) && ! defined( 'WP_INSTALLING' ) ) {
    637         // Schedule auto updates for 7 a.m. and 7 p.m. in the timezone of the site.
    638         $next = strtotime( 'today 7am' );
    639         $now = time();
    640         // Find the next instance of 7 a.m. or 7 p.m., but skip it if it is within 3 hours from now.
    641         while ( ( $now + 3 * HOUR_IN_SECONDS ) > $next ) {
    642             $next += 12 * HOUR_IN_SECONDS;
    643         }
    644         $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    645         // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
    646         $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
    647         wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
    648     }
     636    if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') )
     637        wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
    649638}
    650639
  • branches/4.1/src/wp-includes/update.php

    r31394 r36184  
    634634        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
    635635
    636     if ( ! wp_next_scheduled( 'wp_maybe_auto_update' ) && ! defined( 'WP_INSTALLING' ) ) {
    637         // Schedule auto updates for 7 a.m. and 7 p.m. in the timezone of the site.
    638         $next = strtotime( 'today 7am' );
    639         $now = time();
    640         // Find the next instance of 7 a.m. or 7 p.m., but skip it if it is within 3 hours from now.
    641         while ( ( $now + 3 * HOUR_IN_SECONDS ) > $next ) {
    642             $next += 12 * HOUR_IN_SECONDS;
    643         }
    644         $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    645         // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
    646         $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
    647         wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
    648     }
     636    if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') )
     637        wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
    649638}
    650639
  • branches/4.2/src/wp-includes/update.php

    r31825 r36184  
    634634        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
    635635
    636     if ( ! wp_next_scheduled( 'wp_maybe_auto_update' ) && ! defined( 'WP_INSTALLING' ) ) {
    637         // Schedule auto updates for 7 a.m. and 7 p.m. in the timezone of the site.
    638         $next = strtotime( 'today 7am' );
    639         $now = time();
    640         // Find the next instance of 7 a.m. or 7 p.m., but skip it if it is within 3 hours from now.
    641         while ( ( $now + 3 * HOUR_IN_SECONDS ) > $next ) {
    642             $next += 12 * HOUR_IN_SECONDS;
    643         }
    644         $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    645         // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
    646         $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
    647         wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
    648     }
     636    if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') )
     637        wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
    649638}
    650639
  • branches/4.3/src/wp-includes/update.php

    r32635 r36184  
    646646        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
    647647
    648     if ( ! wp_next_scheduled( 'wp_maybe_auto_update' ) && ! defined( 'WP_INSTALLING' ) ) {
    649         // Schedule auto updates for 7 a.m. and 7 p.m. in the timezone of the site.
    650         $next = strtotime( 'today 7am' );
    651         $now = time();
    652         // Find the next instance of 7 a.m. or 7 p.m., but skip it if it is within 3 hours from now.
    653         while ( ( $now + 3 * HOUR_IN_SECONDS ) > $next ) {
    654             $next += 12 * HOUR_IN_SECONDS;
    655         }
    656         $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    657         // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
    658         $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
    659         wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
    660     }
     648    if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') )
     649        wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
    661650}
    662651
  • branches/4.4/src/wp-includes/update.php

    r35774 r36184  
    647647        wp_schedule_event(time(), 'twicedaily', 'wp_update_themes');
    648648
    649     if ( ! wp_next_scheduled( 'wp_maybe_auto_update' ) && ! wp_installing() ) {
    650         // Schedule auto updates for 7 a.m. and 7 p.m. in the timezone of the site.
    651         $next = strtotime( 'today 7am' );
    652         $now = time();
    653         // Find the next instance of 7 a.m. or 7 p.m., but skip it if it is within 3 hours from now.
    654         while ( ( $now + 3 * HOUR_IN_SECONDS ) > $next ) {
    655             $next += 12 * HOUR_IN_SECONDS;
    656         }
    657         $next = $next - get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
    658         // Add a random number of minutes, so we don't have all sites trying to update exactly on the hour
    659         $next = $next + rand( 0, 59 ) * MINUTE_IN_SECONDS;
    660         wp_schedule_event( $next, 'twicedaily', 'wp_maybe_auto_update' );
    661     }
     649    if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! wp_installing() )
     650        wp_clear_scheduled_hook( 'wp_maybe_auto_update' );
    662651}
    663652
Note: See TracChangeset for help on using the changeset viewer.