Respect VisibilityTimeout when calling receive_message
Previously, receive_message would always use the queue's default visibility timeout instead of the value passed as a query parameter when calling the receive_message method on an SQS connection.
This commit is contained in:
parent
4372c346d9
commit
9b7902018f
3 changed files with 46 additions and 8 deletions
|
|
@ -265,7 +265,7 @@ class SQSBackend(BaseBackend):
|
|||
|
||||
return message
|
||||
|
||||
def receive_messages(self, queue_name, count, wait_seconds_timeout):
|
||||
def receive_messages(self, queue_name, count, wait_seconds_timeout, visibility_timeout):
|
||||
"""
|
||||
Attempt to retrieve visible messages from a queue.
|
||||
|
||||
|
|
@ -276,6 +276,7 @@ class SQSBackend(BaseBackend):
|
|||
|
||||
:param string queue_name: The name of the queue to read from.
|
||||
:param int count: The maximum amount of messages to retrieve.
|
||||
:param int visibility_timeout: The number of seconds the message should remain invisible to other queue readers.
|
||||
"""
|
||||
queue = self.get_queue(queue_name)
|
||||
result = []
|
||||
|
|
@ -288,7 +289,7 @@ class SQSBackend(BaseBackend):
|
|||
if not message.visible:
|
||||
continue
|
||||
message.mark_received(
|
||||
visibility_timeout=queue.visibility_timeout
|
||||
visibility_timeout=visibility_timeout
|
||||
)
|
||||
result.append(message)
|
||||
if len(result) >= count:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue