diff --git a/admin/tool/task/cli/schedule_task.php b/admin/tool/task/cli/schedule_task.php index 0660eff0556..62b0ad984cc 100644 --- a/admin/tool/task/cli/schedule_task.php +++ b/admin/tool/task/cli/schedule_task.php @@ -123,6 +123,7 @@ if ($execute = $options['execute']) { } else { $task->set_cron_lock($cronlock); } + get_mailer('buffer'); $task->execute(); if (isset($predbqueries)) { mtrace("... used " . ($DB->perf_get_queries() - $predbqueries) . " dbqueries"); @@ -130,6 +131,7 @@ if ($execute = $options['execute']) { } mtrace("Task completed."); \core\task\manager::scheduled_task_complete($task); + get_mailer('close'); exit(0); } catch (Exception $e) { if ($DB->is_transaction_started()) { @@ -139,6 +141,7 @@ if ($execute = $options['execute']) { mtrace("... used " . (microtime(true) - $pretime) . " seconds"); mtrace("Task failed: " . $e->getMessage()); \core\task\manager::scheduled_task_failed($task); + get_mailer('close'); exit(1); } } diff --git a/lib/classes/task/legacy_plugin_cron_task.php b/lib/classes/task/legacy_plugin_cron_task.php index b2d08733715..4aa1f451877 100644 --- a/lib/classes/task/legacy_plugin_cron_task.php +++ b/lib/classes/task/legacy_plugin_cron_task.php @@ -79,7 +79,6 @@ class legacy_plugin_cron_task extends scheduled_task { // Run all cron jobs for each module. mtrace("Starting activity modules"); - get_mailer('buffer'); if ($mods = $DB->get_records_select("modules", "cron > 0 AND ((? - lastcron) > cron) AND visible = 1", array($timenow))) { foreach ($mods as $mod) { $libfile = "$CFG->dirroot/mod/$mod->name/lib.php"; @@ -105,7 +104,6 @@ class legacy_plugin_cron_task extends scheduled_task { } } } - get_mailer('close'); mtrace("Finished activity modules"); mtrace("Starting blocks"); diff --git a/lib/cronlib.php b/lib/cronlib.php index 4312ba6900c..cb8bb988272 100644 --- a/lib/cronlib.php +++ b/lib/cronlib.php @@ -70,6 +70,7 @@ function cron_run() { $predbqueries = $DB->perf_get_queries(); $pretime = microtime(1); try { + get_mailer('buffer'); $task->execute(); if (isset($predbqueries)) { mtrace("... used " . ($DB->perf_get_queries() - $predbqueries) . " dbqueries"); @@ -89,6 +90,7 @@ function cron_run() { mtrace("Scheduled task failed: " . $task->get_name() . "," . $e->getMessage()); \core\task\manager::scheduled_task_failed($task); } + get_mailer('close'); unset($task); } @@ -101,6 +103,7 @@ function cron_run() { $predbqueries = $DB->perf_get_queries(); $pretime = microtime(1); try { + get_mailer('buffer'); $task->execute(); if (isset($predbqueries)) { mtrace("... used " . ($DB->perf_get_queries() - $predbqueries) . " dbqueries"); @@ -120,6 +123,7 @@ function cron_run() { mtrace("Adhoc task failed: " . get_class($task) . "," . $e->getMessage()); \core\task\manager::adhoc_task_failed($task); } + get_mailer('close'); unset($task); }