From f6210b2beece8b26687aa4abe59dc2e5baafa9b4 Mon Sep 17 00:00:00 2001 From: "Buster \"Silver Eagle\" Neece" Date: Fri, 17 Jul 2020 02:23:02 -0500 Subject: [PATCH] In case of exception, log error and put back in queue. --- src/Workers/AbstractQueueWorker.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Workers/AbstractQueueWorker.php b/src/Workers/AbstractQueueWorker.php index 9a5b946..507e71c 100644 --- a/src/Workers/AbstractQueueWorker.php +++ b/src/Workers/AbstractQueueWorker.php @@ -4,6 +4,7 @@ namespace Benzine\Workers; use Benzine\Services\EnvironmentService; use Benzine\Services\QueueService; +use Benzine\Services\WorkerWorkItem; use Monolog\Logger; abstract class AbstractQueueWorker extends AbstractWorker @@ -130,7 +131,22 @@ abstract class AbstractQueueWorker extends AbstractWorker $this->resultItems = []; foreach ($items as $item) { - $processResults = $this->process($item); + try { + $processResults = $this->process($item); + } catch (\Exception $e) { + $this->returnToInputQueue($item); + + $this->logger->error( + 'Exception encountered while processing message queue.', + [ + 'file' => $e->getFile(), + 'line' => $e->getLine(), + 'code' => $e->getCode(), + 'trace' => array_slice($e->getTrace(), 0, 5), + ] + ); + continue; + } if (is_array($processResults)) { foreach ($processResults as $processResult) {