Advertisement
Guest User

Untitled

a guest
Jul 15th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. import boto3
  2. import json
  3. import signal
  4. import sys
  5. import urllib2 #prep for get request on authcache service
  6. import pymysql
  7. import logging
  8.  
  9. sqs = boto3.resource('sqs', region_name='us-east-1')
  10.  
  11. queue = sqs.get_queue_by_name(QueueName='cmb-analytics')
  12.  
  13. logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
  14. log = logging.getLogger(__name__)
  15.  
  16. class SigKill:
  17. def __init__(self):
  18. signal.signal(signal.SIGINT, self.exit_gracefully)
  19. signal.signal(signal.SIGTERM, self.exit_gracefully)
  20. self.kill_now = False
  21.  
  22. def exit_gracefully(self, signum, frame):
  23. self.kill_now = True
  24.  
  25. if __name__ == '__main__':
  26. killer = SigKill()
  27.  
  28. while not killer.kill_now:
  29.  
  30. for message in queue.receive_messages(WaitTimeSeconds=5, MaxNumberOfMessages=10, MessageAttributeNames=['Name']):
  31. event_text = ''
  32. if message.message_attributes is not None:
  33. event_name = message.message_attributes.get('Name').get('StringValue')
  34. if event_name:
  35. event_text = ' ({0})'.format(event_name)
  36.  
  37. events = json.loads(message.body)
  38. conn = pymysql.connect(host='',
  39. user='',
  40. password='',
  41. db='',
  42. charset='utf8mb4',
  43. autocommit=True,
  44. cursorclass=pymysql.cursors.DictCursor)
  45.  
  46. AVAILABLE_FIELDS = ['profile_id', 'event']
  47.  
  48.  
  49. keys_to_write = []
  50. values_to_write = []
  51. for field in AVAILABLE_FIELDS:
  52. if field in events:
  53. keys_to_write.append(field)
  54. values_to_write.append(events[field])
  55.  
  56. if len(keys_to_write) > 0:
  57. cur = conn.cursor()
  58. table="events"
  59. sql = "INSERT INTO %s (%s) VALUES(%s)" % ( table, ",".join(keys_to_write), ",".join(["'{}'".format(k) for k in values_to_write]))
  60. log.error(sql)
  61. cur.execute(sql)
  62. cur.close()
  63. #conn.close()
  64. else:
  65. print "FUCK"
  66.  
  67. message.delete()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement