public function receiveMessage($queueId = null, $waitTime = 0) { $queueId = $this->normaliseQueueId($queueId); if (empty($waitTime)) { $waitTime = $this->waitTime; } $message = $this->predis->blpop([$queueId], $waitTime); if (empty($message[1])) { return null; } /** @var QueueMessage $queueMessage */ $queueMessage = $this->messageFactory->createMessage($message[1], $queueId); $index = $this->receivedMessageCounter++; $this->receivedMessages[$index] = $queueMessage; $queueMessage->setReceiptId($index); return $queueMessage; }
/** * {@inheritDoc} */ public function receiveMessage($queueId = null, $waitTime = null) { if (empty($queueId)) { // have to do this here as we need the ID later in this method $queueId = $this->getQueueId(); } $queueUrl = $this->getQueueUrl($queueId); $message = $this->queueClient->receiveMessage(["QueueUrl" => $queueUrl, "WaitTimeSeconds" => isset($waitTime) ? $waitTime : $this->waitTime]); return $this->messageFactory->createMessage($message->toArray(), $queueId); }
public function testReceiveMessage() { $messageArray = [1, 2, 3]; /** @var \Mockery\Mock $message */ $message = \Mockery::mock("Guzzle\\Common\\Collection"); $message->shouldReceive("toArray")->andReturn($messageArray)->getMock(); $this->sqsClient->shouldReceive("receiveMessage")->with(["QueueUrl" => $this->queueUrl, "WaitTimeSeconds" => 20])->andReturn($message); $this->messageFactory->shouldReceive("createMessage")->with($messageArray, $this->queueId)->andReturn(true); $queue = new Queue($this->sqsClient, $this->messageFactory, $this->queueId); $this->assertTrue($queue->receiveMessage()); }