function Cron::invokeCronHandlers
Same name in other branches
- 9 core/lib/Drupal/Core/Cron.php \Drupal\Core\Cron::invokeCronHandlers()
- 8.9.x core/lib/Drupal/Core/Cron.php \Drupal\Core\Cron::invokeCronHandlers()
- 10 core/lib/Drupal/Core/Cron.php \Drupal\Core\Cron::invokeCronHandlers()
Invokes any cron handlers implementing hook_cron.
File
-
core/
lib/ Drupal/ Core/ Cron.php, line 250
Class
- Cron
- The Drupal core Cron service.
Namespace
Drupal\CoreCode
protected function invokeCronHandlers() {
$module_previous = '';
// If detailed logging isn't enabled, don't log individual execution times.
$time_logging_enabled = \Drupal::config('system.cron')->get('logging');
$logger = $time_logging_enabled ? $this->logger : new NullLogger();
// Iterate through the modules calling their cron handlers (if any):
$this->moduleHandler
->invokeAllWith('cron', function (callable $hook, string $module) use (&$module_previous, $logger) {
if (!$module_previous) {
$logger->info('Starting execution of @module_cron().', [
'@module' => $module,
]);
}
else {
$logger->info('Starting execution of @module_cron(), execution of @module_previous_cron() took @time.', [
'@module' => $module,
'@module_previous' => $module_previous,
'@time' => Timer::read('cron_' . $module_previous) . 'ms',
]);
}
Timer::start('cron_' . $module);
// Do not let an exception thrown by one module disturb another.
try {
$hook();
} catch (\Exception $e) {
Error::logException($this->logger, $e);
}
Timer::stop('cron_' . $module);
$module_previous = $module;
});
if ($module_previous) {
$logger->info('Execution of @module_previous_cron() took @time.', [
'@module_previous' => $module_previous,
'@time' => Timer::read('cron_' . $module_previous) . 'ms',
]);
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.