From 1e5dca2eb3bd263335fb13e7762d112829eda881 Mon Sep 17 00:00:00 2001 From: Matthew Baggett Date: Tue, 7 Jul 2020 18:46:34 +0200 Subject: [PATCH] Make it possible to extract what was just processed from the worker. Mostly needed for testing. --- src/Workers/AbstractQueueWorker.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Workers/AbstractQueueWorker.php b/src/Workers/AbstractQueueWorker.php index 6bfe996..eae47e8 100644 --- a/src/Workers/AbstractQueueWorker.php +++ b/src/Workers/AbstractQueueWorker.php @@ -15,6 +15,8 @@ abstract class AbstractQueueWorker extends AbstractWorker /** @var string[] Name of the output redis queues */ protected ?array $outputQueues; + protected ?array $resultItems; + public function __construct( QueueService $queueService, Logger $logger, @@ -116,7 +118,6 @@ abstract class AbstractQueueWorker extends AbstractWorker if (isset($this->cliArguments['stop-on-zero']) && true === $this->cliArguments['stop-on-zero'] && 0 == $queueLength) { $this->logger->warning('--stop-on-zero is set, and the queue length is zero! Stopping!'); exit; - exit; } if ($queueLength <= 0) { @@ -124,24 +125,32 @@ abstract class AbstractQueueWorker extends AbstractWorker } $items = $this->queueService->pop($this->inputQueue); - $resultItems = []; + $this->resultItems = []; foreach ($items as $item) { $processResults = $this->process($item); if (is_array($processResults)) { foreach ($processResults as $processResult) { - $resultItems[] = $processResult; + $this->resultItems[] = $processResult; } } else { - $resultItems[] = $processResults; + $this->resultItems[] = $processResults; } } foreach ($this->outputQueues as $outputQueue) { - $this->queueService->push($outputQueue, $resultItems); + $this->queueService->push($outputQueue, $this->resultItems); } return true; } + /** + * @return null|array + */ + public function getResultItems(): ?array + { + return $this->resultItems; + } + /** * Send work item back to the queue it came from. *