Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import redis
- import urllib2
- import urllib
- import requests
- import time
- r = redis.StrictRedis(host='myhost.com', port=6379)
- p = r.pubsub()
- p.subscribe('edipy')
- def do_request(method, path, data = None):
- fn = {
- 'GET': requests.get,
- 'POST': requests.post,
- 'PUT': requests.put,
- 'DELETE': requests.delete
- }[method]
- if fn is None:
- return ''
- return fn('http://127.0.0.1:5000' + path, data=data).content
- while True:
- m = p.get_message()
- if m:
- print m
- if m['type'] == 'message':
- if m['data'].find('POST') == 0:
- entity = m['data'][7:]
- r.publish('edipy-ack', m['data'] + ' > ' + do_request('POST', '/entity/' + entity + '/state', {'state': m['data'][5:6]}))
- elif m['data'].find('GET') == 0:
- r.publish('edipy-ack', m['data'] + ' > ' + do_request('GET', '/entity/' + m['data'][4:] + '/state'))
- elif m['data'].find('QUEUE') == 0:
- data = m['data'].split(' ')
- allowOverride = False
- if len(data) < 4:
- print "err, queue too short"
- continue
- if len(data) == 5:
- allowOverride = int(data[4])
- print allowOverride
- entity = data[1]
- state = int(data[2])
- timestamp = int(data[3])
- r.publish('edipy-ack', m['data'] + ' > ' + do_request('PUT', '/entity/' + entity + '/queue', {'pin_state': state, 'time': timestamp, 'allow_override': allowOverride}))
- time.sleep(0.3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement