def run(self): self.connect('alarm_rsp') while True: frame = self.client.receiveFrame() self.client.ack(frame) msg_id = parse_headers(frame.headers, frame.body) logger.debug('[Alarm Consumer] body: %s' % frame.body) try: body = json.loads(frame.body) except: logger.error('[Alarm Consumer] body: %s' % frame.body) continue req_idlist = None if 'ReqIDList' in body: req_idlist = body.pop('ReqIDList') if body['Type'] == 'SubscribeDeviceAlarmInfoChangePush': for req_id in req_idlist: self.oMsgPool.send(body, req_id) else: if not msg_id: continue if body['Type'] == 'UnSubscribeDeviceAlarmInfoChangeFeedback': continue self.oMsgPool.send(body, msg_id) self.client.disconnect()
def add(self, usrid, client=None, req=None): id = None if req is not None: id = req.headers.get('Last-Event-ID') logger.debug('msgPool Last-Event-ID: %s' % id) if not id: id = str(usrid) + '_' + gen_unique_sn() + '_' + client logger.debug('msgPool add: %s' % (id)) self[id] = [[Future()], 0, 0] # [Results, request timeout, response timeout] return id
def wait(self, id): try: a = self[id] except KeyError: logger.debug('msgPool wait no id %s' % id) return a[2] = 0 a[1] = time.time() # 等待结果30s,30s后请求超时 try: r = a[0][0] except IndexError: logger.info('msgPool no futures') return return r
def run(self): self.connect('auth_rsp', ('pyhost', config.mq_selector)) while True: frame = self.client.receiveFrame() self.client.ack(frame) msg_id = parse_headers(frame.headers, frame.body) if not msg_id: continue logger.debug('[Auth Consumer] body: %s' % frame.body) try: msg = json.loads(frame.body) except: logger.error('[Auth Consumer] body: %s' % frame.body) continue self.oMsgPool.send(msg, msg_id) self.client.disconnect()
def run(self): self.connect('wf_rsp') while True: frame = self.client.receiveFrame() self.client.ack(frame) logger.debug('[WF Consumer] body: %s' % frame.body) msg_id = parse_headers(frame.headers, frame.body) if not msg_id: continue try: body = json.loads(frame.body) except: logger.error('[WF Consumer] body: %s' % frame.body) continue self.oMsgPool.send(body, msg_id) self.client.disconnect()
def run(self): print 'consumer: %s' % config.mq_selector self.connect('dm_rsp', ('pyhost', config.mq_selector)) while True: frame = self.client.receiveFrame() self.client.ack(frame) logger.debug('[DM Consumer] body: %s' % frame.body) msg_id = parse_headers(frame.headers, frame.body) if not msg_id: continue try: body = json.loads(frame.body) # print 'consumer body:' # print json.dumps(body, indent=1) self.oMsgPool.send(body, msg_id) except: logger.error('[DM Consumer] body: %s' % frame.body) continue self.client.disconnect()