Skip to content

Instantly share code, notes, and snippets.

@tfhartmann
Created February 12, 2014 14:02
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tfhartmann/8956086 to your computer and use it in GitHub Desktop.
Save tfhartmann/8956086 to your computer and use it in GitHub Desktop.
Example script on how to poll a AWS SQS Queue and pull off messages
#!//opt/boxen/homebrew/bin/python
import boto.sqs
from boto.sqs.message import RawMessage
import json
import time
import requests
REGION = 'us-west-2'
QUEUE = 'queuetest'
counter = 1
def queue_count( REGION, QUEUE):
conn = boto.sqs.connect_to_region( REGION )
q = conn.get_queue( QUEUE )
count = q.count()
return count
def get_messages( REGION, QUEUE ):
conn = boto.sqs.connect_to_region( REGION )
q = conn.get_queue( QUEUE )
mess = q.set_message_class(RawMessage)
mess = q.get_messages()
print 'Lenth ', len(mess)
print 'Type ', type(mess)
for result in mess:
print 'Hey >>>', type(result.get_body())
rst = result.get_body()
rst = json.loads(rst)
url = rst['Message']
r = requests.get(url)
print r.json()
print rst['Message']
print rst['MessageId']
q.delete_message(result)
while counter <= 5:
if queue_count(REGION, QUEUE) > 0:
print 'yup'
get_messages(REGION, QUEUE)
time.sleep(2)
counter = counter + 1
print counter
else:
print 'nope'
time.sleep(10)
counter = counter + 5
print counter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment