///<summary>/// Delete a batch of messages from a queue by its url.///</summary>///<param name="queueUrl">The url of the queue.</param>///<returns>True if successful.</returns>publicasync Task<bool> DeleteMessageBatchByUrl(string queueUrl, List<Message> messages){var deleteRequest = new DeleteMessageBatchRequest()
{
QueueUrl = queueUrl,
Entries = new List<DeleteMessageBatchRequestEntry>()
};
foreach (var message in messages)
{
deleteRequest.Entries.Add(new DeleteMessageBatchRequestEntry()
{
ReceiptHandle = message.ReceiptHandle,
Id = message.MessageId
});
}
var deleteResponse = await _amazonSQSClient.DeleteMessageBatchAsync(deleteRequest);
return deleteResponse.Failed.Any();
}
defdelete_messages(queue, messages):"""
Delete a batch of messages from a queue in a single request.
:param queue: The queue from which to delete the messages.
:param messages: The list of messages to delete.
:return: The response from SQS that contains the list of successful and failed
message deletions.
"""try:
entries = [
{"Id": str(ind), "ReceiptHandle": msg.receipt_handle}
for ind, msg inenumerate(messages)
]
response = queue.delete_messages(Entries=entries)
if"Successful"in response:
for msg_meta in response["Successful"]:
logger.info("Deleted %s", messages[int(msg_meta["Id"])].receipt_handle)
if"Failed"in response:
for msg_meta in response["Failed"]:
logger.warning(
"Could not delete %s", messages[int(msg_meta["Id"])].receipt_handle
)
except ClientError:
logger.exception("Couldn't delete messages from queue %s", queue)
else:
return response
///<summary>/// Delete a batch of messages from a queue by its url.///</summary>///<param name="queueUrl">The url of the queue.</param>///<returns>True if successful.</returns>publicasync Task<bool> DeleteMessageBatchByUrl(string queueUrl, List<Message> messages){var deleteRequest = new DeleteMessageBatchRequest()
{
QueueUrl = queueUrl,
Entries = new List<DeleteMessageBatchRequestEntry>()
};
foreach (var message in messages)
{
deleteRequest.Entries.Add(new DeleteMessageBatchRequestEntry()
{
ReceiptHandle = message.ReceiptHandle,
Id = message.MessageId
});
}
var deleteResponse = await _amazonSQSClient.DeleteMessageBatchAsync(deleteRequest);
return deleteResponse.Failed.Any();
}