Cron::run

public Cron::run()

Executes a cron run.

Do not call this function from a test. Use $this->cronRun() instead.

Return value

bool TRUE upon success, FALSE otherwise.

Overrides CronInterface::run

File

core/lib/Drupal/Core/Cron.php, line 102

Class

Cron
The Drupal core Cron service.

Namespace

Drupal\Core

Code

public function run() {
  // Allow execution to continue even if the request gets cancelled.
  @ignore_user_abort(TRUE);

  // Force the current user to anonymous to ensure consistent permissions on
  // cron runs.
  $this->accountSwitcher->switchTo(new AnonymousUserSession());

  // Try to allocate enough time to run all the hook_cron implementations.
  drupal_set_time_limit(240);

  $return = FALSE;

  // Try to acquire cron lock.
  if (!$this->lock->acquire('cron', 900.0)) {
    // Cron is still running normally.
    $this->logger->warning('Attempting to re-run cron while it is already running.');
  }
  else {
    $this->invokeCronHandlers();
    $this->setCronLastTime();

    // Release cron lock.
    $this->lock->release('cron');

    // Return TRUE so other functions can check if it did run successfully
    $return = TRUE;
  }

  // Process cron queues.
  $this->processQueues();

  // Restore the user.
  $this->accountSwitcher->switchBack();

  return $return;
}
doc_Drupal
2016-10-29 08:59:06
Comments
Leave a Comment

Please login to continue.