1.20.x update.module update_cron()

Implements hook_cron().

File

modules/update/update.module, line 206
Handles update checking for Backdrop core and contributed projects.

Code

function update_cron() {
  // Check to see if we are running a test before checking for updates.
  if (!_update_checking_enabled()) {
    return;
  }

  // An update interval of 0 means manaul checking only.
  $frequency = config_get('update.settings', 'update_interval_days');
  if ($frequency == 0) {
    return;
  }

  $interval = 60 * 60 * 24 * $frequency;
  if ((REQUEST_TIME - state_get('update_last_check', 0)) > $interval) {
    // If the configured update interval has elapsed, we want to invalidate
    // the cached data for all projects, attempt to re-fetch, and trigger any
    // configured notifications about the new status.
    update_refresh();
    update_fetch_data();
  }
  else {
    // Otherwise, see if any individual projects are now stale or still
    // missing data, and if so, try to fetch the data.
    update_get_available(TRUE);
  }
  if ((REQUEST_TIME - state_get('update_last_email_notification', 0)) > $interval) {
    // If configured time between notifications elapsed, send email about
    // updates possibly available.
    module_load_include('inc', 'update', 'update.fetch');
    _update_cron_notify();
  }
}