Skip to content

Commit 4811339

Browse files
committed
Requeue with a custom visibility timeout
1 parent 0c9f7c4 commit 4811339

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

‎pkg/sqs/SqsConsumer.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public function reject(Message $message, bool $requeue = false): void
138138
'@region' => $this->queue->getRegion(),
139139
'QueueUrl' => $this->context->getQueueUrl($this->queue),
140140
'ReceiptHandle' => $message->getReceiptHandle(),
141-
'VisibilityTimeout' => 0,
141+
'VisibilityTimeout' => $message->getRequeueVisibilityTimeout(),
142142
]);
143143
} else {
144144
$this->context->getSqsClient()->deleteMessage([

‎pkg/sqs/SqsMessage.php‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,19 @@ class SqsMessage implements Message
4848
*/
4949
private $receiptHandle;
5050

51+
/**
52+
* @var int
53+
*/
54+
private $requeueVisibilityTimeout;
55+
5156
public function __construct(string $body = '', array $properties = [], array $headers = [])
5257
{
5358
$this->body = $body;
5459
$this->properties = $properties;
5560
$this->headers = $headers;
5661
$this->redelivered = false;
5762
$this->delaySeconds = 0;
63+
$this->requeueVisibilityTimeout = 0;
5864
}
5965

6066
public function setBody(string $body): void
@@ -229,4 +235,19 @@ public function getReceiptHandle(): ?string
229235
{
230236
return $this->receiptHandle;
231237
}
238+
239+
/**
240+
* The number of seconds before the message can be visible again when requeuing. Valid values: 0 to 43200. Maximum: 12 hours.
241+
*
242+
* Set requeue visibility timeout
243+
*/
244+
public function setRequeueVisibilityTimeout(int $seconds): void
245+
{
246+
$this->requeueVisibilityTimeout = $seconds;
247+
}
248+
249+
public function getRequeueVisibilityTimeout(): int
250+
{
251+
return $this->requeueVisibilityTimeout;
252+
}
232253
}

0 commit comments

Comments
 (0)