function drupal_cron_run in Drupal 6
Same name and namespace in other branches
- 5 includes/common.inc \drupal_cron_run()
- 7 includes/common.inc \drupal_cron_run()
Executes a cron run when called
Return value
Returns TRUE if ran successfully
2 calls to drupal_cron_run()
- cron.php in ./
cron.php - system_run_cron in modules/
system/ system.admin.inc - Menu callback: run cron manually.
File
- includes/
common.inc, line 2797 - Common functions that many Drupal modules will need to reference.
Code
function drupal_cron_run() {
// Try to allocate enough time to run all the hook_cron implementations.
if (function_exists('set_time_limit')) {
@set_time_limit(240);
}
// Fetch the cron semaphore
$semaphore = variable_get('cron_semaphore', FALSE);
if ($semaphore) {
if (time() - $semaphore > 3600) {
// Either cron has been running for more than an hour or the semaphore
// was not reset due to a database error.
watchdog('cron', 'Cron has been running for more than an hour and is most likely stuck.', array(), WATCHDOG_ERROR);
// Release cron semaphore
variable_del('cron_semaphore');
}
else {
// Cron is still running normally.
watchdog('cron', 'Attempting to re-run cron while it is already running.', array(), WATCHDOG_WARNING);
}
}
else {
// Register shutdown callback
register_shutdown_function('drupal_cron_cleanup');
// Lock cron semaphore
variable_set('cron_semaphore', time());
// Iterate through the modules calling their cron handlers (if any):
module_invoke_all('cron');
// Record cron time
variable_set('cron_last', time());
watchdog('cron', 'Cron run completed.', array(), WATCHDOG_NOTICE);
// Release cron semaphore
variable_del('cron_semaphore');
// Return TRUE so other functions can check if it did run successfully
return TRUE;
}
}