示例#1
0
    def run(self):
        self.dialog.pushButtonBufRecvStart.setEnabled(False)
        self.dialog.pushButtonBufRecvStop.setEnabled(True)
    
        LogUtil.getLoggerInstance(self.config, "buf_recv")
        LogUtil.info("buf_recv:"+" begin")
        
        config=configparser.ConfigParser()
        config.read(self.config)

        write_buff=config.get("buf_recv", "write_buff")
        if write_buff:
            md_host=config.get("buf_recv", "md_host")
            md_database=config.get("buf_recv", "md_database")
            md_user=config.get("buf_recv", "md_user")
            md_password=config.get("buf_recv", "md_password")            
            md_conn=pgdb.connect(database=md_database, host=md_host, user=md_user, password=md_password)
            md_insert_buf_cursor=md_conn.cursor()
            #md_insert_buf_sql='''insert into market_data_buff(data_date,insert_time,buff)
            #values(%(data_date)s,localtimestamp,%(buff)s)
            #'''
            md_insert_buf_sql='''insert into market_data_buff(data_date,buff_id,insert_time,buff,src_time)
            values(%(data_date)s,%(buf_id)s,%(insert_time)s,%(buff)s,%(src_time)s)
            '''
            md_insert_buf_dict={'data_date':0, 'buf_id':0, 'insert_time':None, 'buff':'', 'src_time':None}
        
        buf_sub_addr=config.get("buf_recv", "buf_sub_addr")
        buf_sub_topic=config.get("buf_recv", "buf_sub_topic")
        ctx=zmq.Context()
        sock=ctx.socket(zmq.SUB)
        sock.connect(buf_sub_addr)
        sock.setsockopt_string(zmq.SUBSCRIBE, buf_sub_topic)
        
        bufRecvCnt=0
        bufWriteCnt=0
        bufUpdateTime=None
        bufErrCnt=0     
        bufStatus='Running'   
        recvBufStatus=RecvBufStatus()        
        
        while not self.toStop:
            try:
                (buf_id, src_time, recv_buff)=sock.recv_pyobj()
                bufRecvCnt=bufRecvCnt+1
                bufUpdateTime=datetime.datetime.now().strftime('%H:%M:%S.%f')
                if write_buff:
                    md_insert_buf_dict['data_date']=0
                    md_insert_buf_dict['insert_time']=datetime.datetime.now()
                    md_insert_buf_dict['buf_id']=buf_id
                    md_insert_buf_dict['buff']=binascii.hexlify(recv_buff).decode()
                    #msg=recv_buff.decode()
                    md_insert_buf_dict['src_time']=src_time
                    md_insert_buf_cursor.execute(md_insert_buf_sql, md_insert_buf_dict)
                    #TODO
                    md_conn.commit()
                    bufWriteCnt=bufWriteCnt+1
                    #self.dialog.bufWriteCnt.setText(str(bufWriteCnt))
            except Exception as e:
                bufErrCnt=bufErrCnt+1
                #self.dialog.bufErrCnt.setText(str(bufErrCnt))
                LogUtil.error(e)
                LogUtil.error("BufRecvErr:bufErrCnt="+str(bufErrCnt)+",bufRecvCnt="+str(bufRecvCnt)+",bufWriteCnt="+str(bufWriteCnt))
            finally:
                pass
            #TODO    
            recvBufStatus.bufRecvCnt=str(bufRecvCnt)
            recvBufStatus.bufWriteCnt=str(bufWriteCnt)
            recvBufStatus.bufErrCnt=str(bufErrCnt)
            recvBufStatus.bufUpdateTime=bufUpdateTime
            recvBufStatus.bufStatus=bufStatus
            self.bufStatusUpdated.emit(recvBufStatus)
            
            LogUtil.debug("BufRecvErr:bufErrCnt="+str(bufErrCnt)+",bufRecvCnt="+str(bufRecvCnt)+",bufWriteCnt="+str(bufWriteCnt))
            
        self.dialog.pushButtonBufRecvStart.setEnabled(True)
        self.dialog.pushButtonBufRecvStop.setEnabled(False)
示例#2
0
    def run(self):
        self.dialog.pushButtonMsgRecvStart.setEnabled(False)
        self.dialog.pushButtonMsgRecvStop.setEnabled(True)
        
        LogUtil.getLoggerInstance(self.config, "msg_recv")
        LogUtil.info("msg_recv:"+" begin")
        
        config=configparser.ConfigParser()
        config.read(self.config)

        write_msg=config.get("msg_recv", "write_msg")
        if write_msg:
            md_host=config.get("msg_recv", "md_host")
            md_database=config.get("msg_recv", "md_database")
            md_user=config.get("msg_recv", "md_user")
            md_password=config.get("msg_recv", "md_password")            
            md_conn=pgdb.connect(database=md_database, host=md_host, user=md_user, password=md_password)
            md_insert_msg_cursor=md_conn.cursor()
            md_insert_msg_sql='''insert into market_data_message(data_date,insert_time,message_type,message_id,message_content,src_time)
            values(%(data_date)s,%(insert_time)s,%(message_type)s,%(message_id)s,%(message_content)s,%(src_time)s)
            '''
            md_insert_msg_dict={'data_date':0, 'message_type':0, 'message_content':''}

        msg_sub_addr=config.get("msg_recv", "msg_sub_addr")
        msg_sub_topic=config.get("msg_recv", "msg_sub_topic")
        ctx=zmq.Context()
        sock=ctx.socket(zmq.SUB)
        sock.connect(msg_sub_addr)
        sock.setsockopt_string(zmq.SUBSCRIBE, msg_sub_topic)
        
        msgRecvCnt=0
        msgWriteCnt=0
        msgUpdateTime=None
        msgErrCnt=0        
        
        recvMsgStatus=RecvMsgStatus()
        msgStatus='Running'
        
        while not self.toStop:
            try:
                (message_type, message_id, src_time, recv_msg)=sock.recv_pyobj()
                msgRecvCnt=msgRecvCnt+1
                msgUpdateTime=datetime.datetime.now().strftime('%H:%M:%S.%f')
                if write_msg:
                    md_insert_msg_dict['data_date']=0
                    md_insert_msg_dict['insert_time']=datetime.datetime.now()
                    md_insert_msg_dict['message_type']=message_type
                    md_insert_msg_dict['message_id']=message_id
                    md_insert_msg_dict['message_content']=recv_msg
                    md_insert_msg_dict['src_time']=src_time
                    md_insert_msg_cursor.execute(md_insert_msg_sql, md_insert_msg_dict)
                    #TODO
                    md_conn.commit()
                    msgWriteCnt=msgWriteCnt+1
            except Exception as e:
                msgErrCnt=msgErrCnt+1
                LogUtil.error(e)
                LogUtil.error("MsgRecvErr:msgErrCnt="+str(msgErrCnt)+",msgRecvCnt="+str(msgRecvCnt)+",msgWriteCnt="+str(msgWriteCnt))
            finally:
                pass
            recvMsgStatus.msgRecvCnt=str(msgRecvCnt)
            recvMsgStatus.msgWriteCnt=str(msgWriteCnt)
            recvMsgStatus.msgErrCnt=str(msgErrCnt)
            recvMsgStatus.msgUpdateTime=msgUpdateTime
            recvMsgStatus.msgStatus=msgStatus
            self.msgStatusUpdated.emit(recvMsgStatus)
            
            LogUtil.debug("MsgRecvErr:msgErrCnt="+str(msgErrCnt)+",msgRecvCnt="+str(msgRecvCnt)+",msgWriteCnt="+str(msgWriteCnt))
            
        self.dialog.pushButtonMsgRecvStart.setEnabled(True)
        self.dialog.pushButtonMsgRecvStop.setEnabled(False)