MDL-48224 cron: Buffer SMTP connections around tasks

This commit is contained in:
Andrew Nicols 2014-11-14 14:38:16 +08:00 committed by John Okely
parent 8f06fffbe1
commit 371bfca1c4
3 changed files with 7 additions and 2 deletions

View File

@ -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);
}
}

View File

@ -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");

View File

@ -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);
}