Advertisement
Guest User

Untitled

a guest
Jan 25th, 2016
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. import redis
  2. import urllib2
  3. import urllib
  4. import requests
  5. import time
  6.  
  7. r = redis.StrictRedis(host='myhost.com', port=6379)
  8. p = r.pubsub()
  9.  
  10. p.subscribe('edipy')
  11.  
  12. def do_request(method, path, data = None):
  13.     fn = {
  14.         'GET': requests.get,
  15.         'POST': requests.post,
  16.         'PUT': requests.put,
  17.         'DELETE': requests.delete
  18.     }[method]
  19.     if fn is None:
  20.         return ''
  21.     return fn('http://127.0.0.1:5000' + path, data=data).content
  22.  
  23. while True:
  24.     m = p.get_message()
  25.     if m:
  26.         print m
  27.         if m['type'] == 'message':
  28.             if m['data'].find('POST') == 0:
  29.                 entity = m['data'][7:]
  30.                 r.publish('edipy-ack', m['data'] + ' > ' + do_request('POST', '/entity/' + entity + '/state', {'state': m['data'][5:6]}))
  31.             elif m['data'].find('GET') == 0:
  32.                 r.publish('edipy-ack', m['data'] + ' > ' + do_request('GET', '/entity/' + m['data'][4:] + '/state'))
  33.             elif m['data'].find('QUEUE') == 0:
  34.                 data = m['data'].split(' ')
  35.  
  36.                 allowOverride = False
  37.                 if len(data) < 4:
  38.                     print "err, queue too short"
  39.                     continue
  40.                 if len(data) == 5:
  41.                     allowOverride = int(data[4])
  42.                     print allowOverride
  43.                 entity = data[1]
  44.                 state = int(data[2])
  45.                 timestamp = int(data[3])
  46.  
  47.                 r.publish('edipy-ack', m['data'] + ' > ' + do_request('PUT', '/entity/' + entity + '/queue', {'pin_state': state, 'time': timestamp, 'allow_override': allowOverride}))
  48.     time.sleep(0.3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement