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)
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)