Make WordPress Core


Ignore:
Timestamp:
01/06/2016 12:23:15 PM (11 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/3.7
Files:
3 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
Note: See TracChangeset for help on using the changeset viewer.