MDL-47182 admin: warn about delayed scheduled tasks
authorDan Poltawski <dan@moodle.com>
Tue, 16 Sep 2014 16:46:18 +0000 (17:46 +0100)
committerDan Poltawski <dan@moodle.com>
Tue, 16 Sep 2014 16:49:23 +0000 (17:49 +0100)
Rather than using module cron, use scheduled tasks to work out
if cron has been running recently.

This is not perfect, the admin could disble all tasks, or reschedule
them - but its not complex to compute.

admin/index.php

index 34c0f95..8e68e44 100644 (file)
@@ -555,7 +555,8 @@ if (isset($SESSION->pluginuninstallreturn)) {
 // Print default admin page with notifications.
 $errorsdisplayed = defined('WARN_DISPLAY_ERRORS_ENABLED');
 
-$lastcron = $DB->get_field_sql('SELECT MAX(lastcron) FROM {modules}');
+// We make the assumption that at least one schedule task should run once per day.
+$lastcron = $DB->get_field_sql('SELECT MAX(lastruntime) FROM {task_scheduled}');
 $cronoverdue = ($lastcron < time() - 3600 * 24);
 $dbproblems = $DB->diagnose();
 $maintenancemode = !empty($CFG->maintenance_enabled);