Skip to content

Commit

Permalink
Conveted examples to Py3.4 coroutine syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
terricain committed Sep 3, 2017
1 parent e607c76 commit 2755889
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 83 deletions.
77 changes: 42 additions & 35 deletions examples/sqs_queue_consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,46 @@
QUEUE_NAME = 'test_queue1'


async def go(loop):
@asyncio.coroutine
def go(loop):
session = aiobotocore.get_session(loop=loop)
async with session.create_client('sqs', region_name='us-west-2') as client:
response = await client.get_queue_url(QueueName=QUEUE_NAME)
assert response['ResponseMetadata']['HTTPStatusCode'] == 200
assert 'QueueUrl' in response
queue_url = response['QueueUrl']

print('Pulling messages off the queue')

while True:
try:
response = await client.receive_message(
QueueUrl=queue_url,
WaitTimeSeconds=2,
)
resp_status = response['ResponseMetadata']['HTTPStatusCode']
assert resp_status == 200

if 'Messages' in response:
for msg in response['Messages']:
print('Got msg "{0}"'.format(msg['Body']))
# Need to remove msg from queue or else it'll reappear
await client.delete_message(
QueueUrl=queue_url,
ReceiptHandle=msg['ReceiptHandle']
)
else:
print('No messages in queue')
except KeyboardInterrupt:
break

print('Finished')

loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))
client = session.create_client('sqs', region_name='us-west-2')
response = yield from client.get_queue_url(QueueName=QUEUE_NAME)
assert response['ResponseMetadata']['HTTPStatusCode'] == 200
assert 'QueueUrl' in response
queue_url = response['QueueUrl']

print('Pulling messages off the queue')

while True:
try:
# This loop wont spin really fast as there is
# essentially a sleep in the receieve_message call
response = yield from client.receive_message(
QueueUrl=queue_url,
WaitTimeSeconds=2,
)
resp_status = response['ResponseMetadata']['HTTPStatusCode']
assert resp_status == 200

if 'Messages' in response:
for msg in response['Messages']:
print('Got msg "{0}"'.format(msg['Body']))
# Need to remove msg from queue or else it'll reappear
yield from client.delete_message(
QueueUrl=queue_url,
ReceiptHandle=msg['ReceiptHandle']
)
else:
print('No messages in queue')
except KeyboardInterrupt:
break

print('Finished')
yield from client.close()

try:
loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))
except KeyboardInterrupt:
pass
43 changes: 25 additions & 18 deletions examples/sqs_queue_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,34 @@
import aiobotocore


async def go(loop):
@asyncio.coroutine
def go(loop):
session = aiobotocore.get_session(loop=loop)
async with session.create_client('sqs', region_name='us-west-2') as client:
print('Creating test_queue1')
response = await client.create_queue(QueueName='test_queue1')
assert response['ResponseMetadata']['HTTPStatusCode'] == 200
assert 'QueueUrl' in response
queue_url = response['QueueUrl']
client = session.create_client('sqs', region_name='us-west-2')

response = await client.list_queues()
assert response['ResponseMetadata']['HTTPStatusCode'] == 200
print('Creating test_queue1')
response = yield from client.create_queue(QueueName='test_queue1')
assert response['ResponseMetadata']['HTTPStatusCode'] == 200
assert 'QueueUrl' in response
queue_url = response['QueueUrl']

print('Queue Names:')
for queue_name in response.get('QueueUrls', []):
print(' ' + queue_name)
response = yield from client.list_queues()
assert response['ResponseMetadata']['HTTPStatusCode'] == 200

print('Deleting queue {0}'.format(queue_url))
response = await client.delete_queue(QueueUrl=queue_url)
assert response['ResponseMetadata']['HTTPStatusCode'] == 200
print('Queue URLs:')
for queue_name in response.get('QueueUrls', []):
print(' ' + queue_name)

print('Done')
print('Deleting queue {0}'.format(queue_url))
response = yield from client.delete_queue(QueueUrl=queue_url)
assert response['ResponseMetadata']['HTTPStatusCode'] == 200

loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))
print('Done')
yield from client.close()


try:
loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))
except KeyboardInterrupt:
pass
65 changes: 35 additions & 30 deletions examples/sqs_queue_producer.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,34 +12,39 @@
QUEUE_NAME = 'test_queue1'


async def go(loop):
@asyncio.coroutine
def go(loop):
session = aiobotocore.get_session(loop=loop)
async with session.create_client('sqs', region_name='us-west-2') as client:
response = await client.get_queue_url(QueueName=QUEUE_NAME)
assert response['ResponseMetadata']['HTTPStatusCode'] == 200
assert 'QueueUrl' in response
queue_url = response['QueueUrl']

print('Putting messages on the queue')

msg_no = 1
while True:
try:
msg_body = 'Message #{0}'.format(msg_no)
response = await client.send_message(
QueueUrl=queue_url,
MessageBody=msg_body
)
msg_no += 1

assert response['ResponseMetadata']['HTTPStatusCode'] == 200
print('Pushed "{0}" to queue'.format(msg_body))

await asyncio.sleep(random.randint(1, 4))
except KeyboardInterrupt:
break

print('Finished')

loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))
client = session.create_client('sqs', region_name='us-west-2')
response = yield from client.get_queue_url(QueueName=QUEUE_NAME)
assert response['ResponseMetadata']['HTTPStatusCode'] == 200
assert 'QueueUrl' in response
queue_url = response['QueueUrl']

print('Putting messages on the queue')

msg_no = 1
while True:
try:
msg_body = 'Message #{0}'.format(msg_no)
response = yield from client.send_message(
QueueUrl=queue_url,
MessageBody=msg_body
)
msg_no += 1

assert response['ResponseMetadata']['HTTPStatusCode'] == 200
print('Pushed "{0}" to queue'.format(msg_body))

yield from asyncio.sleep(random.randint(1, 4))
except KeyboardInterrupt:
break

print('Finished')
yield from client.close()

try:
loop = asyncio.get_event_loop()
loop.run_until_complete(go(loop))
except KeyboardInterrupt:
pass

0 comments on commit 2755889

Please sign in to comment.