PMCORE-1142_A Artisan stops sending emails if it is left for several hours doing nothing.

This commit is contained in:
Roly Rudy Gutierrez Pinto
2020-03-09 10:56:19 -04:00
parent 1690963023
commit da30f35c05
2 changed files with 12 additions and 2 deletions

View File

@@ -601,7 +601,9 @@ class Propel
foreach (self::$connectionMap as $cnn) { foreach (self::$connectionMap as $cnn) {
if (get_class($cnn) != "DBArrayConnection") { if (get_class($cnn) != "DBArrayConnection") {
if (isset($cnn->lastQuery)) { if (isset($cnn->lastQuery)) {
if (gettype($cnn->getResource()) == "resource" && $cnn->isConnected() && $cnn->lastQuery != $lastQuery) { $existsIsConnectedMethod = method_exists($cnn, "isConnected");
$existsCloseMethod = method_exists($cnn, "close");
if ($existsIsConnectedMethod && $existsCloseMethod && $cnn->isConnected() && $cnn->lastQuery != $lastQuery) {
$cnn->close(); $cnn->close();
} }
$lastQuery = $cnn->lastQuery; $lastQuery = $cnn->lastQuery;

View File

@@ -2,6 +2,7 @@
namespace ProcessMaker\Core; namespace ProcessMaker\Core;
use Bootstrap;
use Exception; use Exception;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use ProcessMaker\BusinessModel\Factories\Jobs; use ProcessMaker\BusinessModel\Factories\Jobs;
@@ -140,12 +141,14 @@ class JobsManager
$_SESSION = $environment['session']; $_SESSION = $environment['session'];
$_SERVER = $environment['server']; $_SERVER = $environment['server'];
Propel::initConfiguration($environment['configuration']);
foreach ($environment['constants'] as $key => $value) { foreach ($environment['constants'] as $key => $value) {
if (!defined($key)) { if (!defined($key)) {
define($key, $value); define($key, $value);
} }
} }
Propel::close();
Propel::init(PATH_CONFIG . "databases.php");
} }
/** /**
@@ -190,6 +193,11 @@ class JobsManager
$callback($environment); $callback($environment);
} catch (Exception $e) { } catch (Exception $e) {
Log::error($e->getMessage() . ": " . $e->getTraceAsString()); Log::error($e->getMessage() . ": " . $e->getTraceAsString());
$context = [
"trace" => $e->getTraceAsString(),
"workspace" => $environment["constants"]["SYS_SYS"]
];
Bootstrap::registerMonolog("queue:work", 400, $e->getMessage(), $context, "");
throw $e; throw $e;
} }
}); });