Last active
April 6, 2017 19:47
-
-
Save mz1991/30abf5885f5ac23fbaf3a4ac8b1e7b72 to your computer and use it in GitHub Desktop.
AWS SQS FIFO
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import boto3 | |
import random | |
# This is for demo purpose, do not store your credentials in the code | |
AWS_ACCESS_KEY = 'yourAccessKey' | |
AWS_SECRET_ACCESS_KEY = 'yourSecretAccessKey' | |
sqs_client = boto3.resource( | |
'sqs', | |
aws_access_key_id=AWS_ACCESS_KEY, | |
aws_secret_access_key=AWS_SECRET_ACCESS_KEY, | |
region_name='us-east-2' # this will work only with us-east-2 or us-west-2 | |
) | |
queue_name = 'demo_queue.fifo' | |
response = sqs_client.create_queue( | |
QueueName=queue_name, | |
Attributes={ | |
'FifoQueue': 'true', | |
'ContentBasedDeduplication' : 'true' | |
} | |
) | |
queue = sqs_client.get_queue_by_name(QueueName=queue_name) | |
# generate some sample numbers | |
samples = random.sample(range(1, 999999), 500) | |
# send the numbers to the queue | |
for i in samples: | |
queue.send_message( | |
MessageBody=str(i), | |
MessageGroupId='my_message_group_id' | |
) | |
received_messages = [] | |
# consume the numbers | |
messages = queue.receive_messages() | |
while len(messages)>0: | |
for message in messages: | |
received_messages.append(int(message.body)) | |
message.delete() | |
messages = queue.receive_messages() | |
# Check that the sent and consumed numbers are the same (also same order!) | |
print(samples == received_messages) # This will print True |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import boto3 | |
import random | |
# This is for demo purpose, do not store your credentials in the code | |
AWS_ACCESS_KEY = 'yourAccessKey' | |
AWS_SECRET_ACCESS_KEY = 'yourSecretAccessKey' | |
sqs_client = boto3.resource( | |
'sqs', | |
aws_access_key_id=AWS_ACCESS_KEY, | |
aws_secret_access_key=AWS_SECRET_ACCESS_KEY, | |
region_name='us-east-1' # use any regions | |
) | |
queue_name = 'demo_queue' | |
response = sqs_client.create_queue( | |
QueueName=queue_name | |
) | |
queue = sqs_client.get_queue_by_name(QueueName=queue_name) | |
# generate some sample numbers | |
samples = random.sample(range(1, 999999), 500) | |
# send the numbers to the queue | |
for i in samples: | |
queue.send_message( | |
MessageBody=str(i), | |
MessageGroupId='my_message_group_id' | |
) | |
received_messages = [] | |
# consume the numbers | |
messages = queue.receive_messages() | |
while len(messages)>0: | |
for message in messages: | |
received_messages.append(int(message.body)) | |
message.delete() | |
messages = queue.receive_messages() | |
# Check that the sent and consumed numbers are the same (also same order!) | |
print(samples == fetched) # This will print False (the messages are not returned in the same order) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment