コード例 #1
0
    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()
コード例 #2
0
    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
コード例 #3
0
    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
コード例 #4
0
    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()
コード例 #5
0
    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()
コード例 #6
0
    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()