Change message deletion behavior of SQS queue to use discard (#4287)

This commit is contained in:
Silvio 2021-09-15 22:05:45 +02:00 committed by GitHub
parent 69c2a11f5c
commit 79f70aa0c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -886,12 +886,11 @@ class SQSBackend(BaseBackend):
): ):
raise ReceiptHandleIsInvalid() raise ReceiptHandleIsInvalid()
# Delete message from queue regardless of pending state
new_messages = [] new_messages = []
for message in queue._messages: for message in queue._messages:
# Only delete message if it is not visible and the receipt_handle
# matches.
if message.receipt_handle == receipt_handle: if message.receipt_handle == receipt_handle:
queue.pending_messages.remove(message) queue.pending_messages.discard(message)
continue continue
new_messages.append(message) new_messages.append(message)
queue._messages = new_messages queue._messages = new_messages