Merge branch 'MDL-46207-master' of git://github.com/damyon/moodle

This commit is contained in:
Sam Hemelryk
2014-07-28 08:37:42 +12:00
2 changed files with 22 additions and 0 deletions
+13
View File
@@ -456,6 +456,8 @@ class manager {
$params = array('timestart1' => $timestart, 'timestart2' => $timestart);
$records = $DB->get_records_select('task_scheduled', $where, $params);
$pluginmanager = \core_plugin_manager::instance();
foreach ($records as $record) {
if ($lock = $cronlockfactory->get_lock(($record->classname), 10)) {
@@ -463,6 +465,17 @@ class manager {
$task = self::scheduled_task_from_record($record);
$task->set_lock($lock);
// See if the component is disabled.
$plugininfo = $pluginmanager->get_plugin_info($task->get_component());
if ($plugininfo) {
if (!$task->get_run_if_component_disabled() && !$plugininfo->is_enabled()) {
$lock->release();
continue;
}
}
if (!$task->is_blocking()) {
$cronlock->release();
} else {
+9
View File
@@ -183,6 +183,15 @@ abstract class scheduled_task extends task_base {
return $this->disabled;
}
/**
* Override this function if you want this scheduled task to run, even if the component is disabled.
*
* @return bool
*/
public function get_run_if_component_disabled() {
return false;
}
/**
* Take a cron field definition and return an array of valid numbers with the range min-max.
*