def parse_failed_detector_send(self, delta=15): current_time = dt.datetime.now() # current_date = current_time.date() start_time = (current_time - dt.timedelta(minutes=delta)).strftime('%H:%M:%S') end_time = (current_time).strftime('%H:%M:%S') current_date = str(current_time.date()) if IF_TEST: current_date = TEST_DATE failed_detector = self.parsing_failed_check(current_date, start_time, end_time) if failed_detector is not None: try: pg = Postgres(ConnectInf.pg_inf_inter_info) pg.execute(sql_delete_channel_data) node_inf = pg.call_pg_data(sql_get_node_inf, fram=True) node_inf.columns = ['node_id','FSTR_INTERSECTID'] merge_result = pd.merge(failed_detector,node_inf,how='left', on=['FSTR_INTERSECTID']) return_message = merge_result.values.tolist() pg.send_pg_data(sql=sql_send_parse_failed_detector, data=return_message) except Exception as e: print(e) return
class InterfaceStatus(): def __init__(self): self.status = None self.pg = Postgres(SqlText.pg_inf_arith) self.ora = Oracle(SqlText.OracleUser) self.conn, self.cr = self.ora.db_conn() @timer def salklist_status(self, date, stime, etime): try: self.cr.execute(sql_get_salklist_status, a=date, b=stime, f=etime) except cx_Oracle.InterfaceError: self.conn, self.cr = self.ora.db_conn() self.cr.execute(sql_get_salklist_status, a=date, b=stime, f=etime) result = self.cr.fetchall() # print(result) self.conn.commit() # self.ora.db_close() data_num = result[0][0] return data_num @timer def operate_status(self, stime, etime): # stime = dt.datetime.strptime(stime, '%Y-%m-%d %H:%M:%S') # etime = dt.datetime.strptime(etime, '%Y-%m-%d %H:%M:%S') try: self.cr.execute(sql_get_opetate_status, a=stime, b=etime) except cx_Oracle.InterfaceError: self.conn, self.cr = self.ora.db_conn() self.cr.execute(sql_get_opetate_status, a=stime, b=etime) result = self.cr.fetchall() # print(result) self.conn.commit() data_num = result[0][0] return data_num @timer def parsing_failed_check(self, date,sdate,edate): def tuple2frame(result, index): column_name = [] for i in range(len(index)): index_name = index[i][0] column_name.append(index_name) result = pd.DataFrame(result, columns=column_name) return result # stime = dt.datetime.strptime(stime, '%Y-%m-%d %H:%M:%S') # etime = dt.datetime.strptime(etime, '%Y-%m-%d %H:%M:%S') try: self.cr.execute(sql_failed_detector, a=date, b=parse_failed_judge,c=sdate,d=edate) print(sql_failed_detector) except cx_Oracle.InterfaceError: # 如果连接异常,重新连接数据库 self.conn, self.cr = self.ora.db_conn() self.cr.execute(sql_failed_detector, a=date, b=parse_failed_judge,c=sdate,d=edate) index = self.cr.description result = self.cr.fetchall() fresult = None if result is not None: fresult = tuple2frame(result, index) if IF_TEST: #测试模式 result = list(result) for i in range(len(result)): result[i] = list(result[i]) # result[i][3] = str(dt.datetime.now().date()) self.conn.commit() return fresult def salk_send(self, delta=15): current_time = dt.datetime.now() start_time = current_time - 2*dt.timedelta(minutes=delta) end_time = current_time - dt.timedelta(minutes=delta) current_date = str(current_time.date()) if IF_TEST: current_date = TEST_DATE test_time = TEST_DATE + ' ' + str(current_time.strftime('%H:%M:%S')) start_time = dt.datetime.strptime(test_time, "%Y-%m-%d %H:%M:%S") - dt.timedelta(minutes=delta) # print(current_date, start_time.strftime("%H:%M:%S"), current_time.strftime("%H:%M:%S")) salk_num = self.salklist_status(current_date, start_time.strftime("%H:%M:%S"), end_time.strftime("%H:%M:%S")) if salk_num == 0: StartTime = (dt.datetime.now() - dt.timedelta(minutes=15)).strftime('%Y-%m-%d %H:%M:%S') EndTime = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S') SiteID = '1' payload1 = {'SiteID': SiteID, 'STime': StartTime, 'ETime': EndTime} # 4.3获取战略运行记录 try: RunStrInformation = requests.get(r'http://33.83.100.138:8080/getStrategicmonitor.html', params=payload1, timeout=5) # 4.3 RunStrInformation = RunStrInformation.text except Exception as e: print(type(e)) # Log.warning("RunStrInformation: request timeout!") exception = "request failed,error type: %s" % type(e) else: RunStrInformation = json.loads(RunStrInformation) if len(RunStrInformation['resultList']) > 0: exception = "request success,data length:%s" % len(RunStrInformation['resultList']) else: exception = "request success,but no data" else: exception = None message_salk = [['战略运行记录接口', current_time, salk_num, exception]] self.pg.send_pg_data(sql=sql_send_message, data=message_salk) return def operate_send(self, delta=15): current_time = dt.datetime.now() # start_time = current_time - dt.timedelta(minutes=delta) start_time = current_time - 2 * dt.timedelta(minutes=delta) end_time = current_time - dt.timedelta(minutes=delta) if IF_TEST: test_time = TEST_DATE + ' ' + str(current_time.strftime('%H:%M:%S')) test_time = dt.datetime.strptime(test_time, "%Y-%m-%d %H:%M:%S") test_start_time = current_time - dt.timedelta(minutes=delta) operate_num = self.operate_status(test_start_time.strftime("%Y-%m-%d %H:%M:%S"), test_time.strftime("%Y-%m-%d %H:%M:%S")) else: operate_num = self.operate_status(start_time.strftime("%Y-%m-%d %H:%M:%S"), end_time.strftime("%Y-%m-%d %H:%M:%S")) if operate_num == 0: StartTime = (dt.datetime.now() - dt.timedelta(minutes=15)).strftime('%Y-%m-%d %H:%M:%S') EndTime = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S') payload1 = {r'STime': StartTime, r'ETime': EndTime} try: get_response = requests.get(r'http://33.83.100.138:8080/getOperatorIntervention.html', params=payload1, timeout=10) # 4.7 GetManoperationRecord = get_response.text print("操作记录请求成功") except Exception as e: print(e) exception = "request failed,error type: %s" % type(e) else: GetManoperationRecord = json.loads(GetManoperationRecord) if len(GetManoperationRecord['resultList']) > 0: exception = "request success,data length:%s" % len(GetManoperationRecord['resultList']) else: exception = "request success,but no data" else: exception = None message_operate = [['人工操作记录接口', current_time, operate_num, exception]] self.pg.send_pg_data(sql=sql_send_message, data=message_operate) return def parse_failed_detector_send(self, delta=15): current_time = dt.datetime.now() # current_date = current_time.date() start_time = (current_time - dt.timedelta(minutes=delta)).strftime('%H:%M:%S') end_time = (current_time).strftime('%H:%M:%S') current_date = str(current_time.date()) if IF_TEST: current_date = TEST_DATE failed_detector = self.parsing_failed_check(current_date, start_time, end_time) if failed_detector is not None: try: pg = Postgres(ConnectInf.pg_inf_inter_info) pg.execute(sql_delete_channel_data) node_inf = pg.call_pg_data(sql_get_node_inf, fram=True) node_inf.columns = ['node_id','FSTR_INTERSECTID'] merge_result = pd.merge(failed_detector,node_inf,how='left', on=['FSTR_INTERSECTID']) return_message = merge_result.values.tolist() pg.send_pg_data(sql=sql_send_parse_failed_detector, data=return_message) except Exception as e: print(e) return
class InterfaceStatus(): OracleUser = '******' pg_inf = {'database': "arithmetic", 'user': "******", 'password': "******", 'host': "192.168.20.46", 'port': "5432"} def __init__(self): self.status = None self.pg = Postgres(InterfaceStatus.pg_inf) self.ora = Oracle(InterfaceStatus.OracleUser) self.conn, self.cr = self.ora.db_conn() @timer def salklist_status(self, date, stime, etime): try: self.cr.execute(sql_get_salklist_status, a=date, b=stime, f=etime) except cx_Oracle.InterfaceError: self.conn, self.cr = self.ora.db_conn() self.cr.execute(sql_get_salklist_status, a=date, b=stime, f=etime) result = self.cr.fetchall() # print(result) self.conn.commit() # self.ora.db_close() data_num = result[0][0] return data_num @timer def operate_status(self, stime, etime): stime = dt.datetime.strptime(stime, '%Y-%m-%d %H:%M:%S') etime = dt.datetime.strptime(etime, '%Y-%m-%d %H:%M:%S') try: self.cr.execute(sql_get_opetate_status, a=stime, b=etime) except cx_Oracle.InterfaceError: self.conn, self.cr = self.ora.db_conn() self.cr.execute(sql_get_opetate_status, a=stime, b=etime) result = self.cr.fetchall() # print(result) self.conn.commit() data_num = result[0][0] return data_num @timer def parsing_failed_check(self, date): # stime = dt.datetime.strptime(stime, '%Y-%m-%d %H:%M:%S') # etime = dt.datetime.strptime(etime, '%Y-%m-%d %H:%M:%S') try: self.cr.execute(sql_failed_detector, a=date, b=parse_failed_judge) except cx_Oracle.InterfaceError: self.conn, self.cr = self.ora.db_conn() self.cr.execute(sql_failed_detector, a=date, b=parse_failed_judge) result = self.cr.fetchall() if IF_TEST: result = list(result) for i in range(len(result)): result[i] = list(result[i]) result[i][3] = str(dt.datetime.now().date()) # print(result) self.conn.commit() return result def salk_send(self, delta=15): current_time = dt.datetime.now() start_time = current_time - dt.timedelta(minutes=delta) current_date = str(current_time.date()) if IF_TEST: current_date = TEST_DATE test_time = TEST_DATE + ' ' + str(current_time.strftime('%H:%M:%S')) start_time = dt.datetime.strptime(test_time, "%Y-%m-%d %H:%M:%S") - dt.timedelta(minutes=delta) # print(current_date, start_time.strftime("%H:%M:%S"), current_time.strftime("%H:%M:%S")) salk_num = self.salklist_status(current_date, start_time.strftime("%H:%M:%S"), current_time.strftime("%H:%M:%S")) if salk_num == 0: StartTime = (dt.datetime.now() - dt.timedelta(minutes=15)).strftime('%Y-%m-%d %H:%M:%S') EndTime = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S') SiteID = '1' payload1 = {'SiteID': SiteID, 'STime': StartTime, 'ETime': EndTime} # 4.3获取战略运行记录 try: RunStrInformation = requests.get(r'http://33.83.100.138:8080/getStrategicmonitor.html', params=payload1, timeout=5) # 4.3 RunStrInformation = RunStrInformation.text except Exception as e: print(type(e)) # Log.warning("RunStrInformation: request timeout!") exception = "request failed,error type: %s" % type(e) else: RunStrInformation = json.loads(RunStrInformation) if len(RunStrInformation['resultList']) > 0: exception = "request success,data length:%s" % len(RunStrInformation['resultList']) else: exception = "request success,but no data" else: exception = None message_salk = [['战略运行记录接口', current_time, salk_num, exception]] self.pg.send_pg_data(sql=sql_send_message, data=message_salk) return def operate_send(self, delta=15): current_time = dt.datetime.now() start_time = current_time - dt.timedelta(minutes=delta) if IF_TEST: test_time = TEST_DATE + ' ' + str(current_time.strftime('%H:%M:%S')) test_time = dt.datetime.strptime(test_time, "%Y-%m-%d %H:%M:%S") test_start_time = current_time - dt.timedelta(minutes=delta) operate_num = self.operate_status(test_start_time.strftime("%Y-%m-%d %H:%M:%S"), test_time.strftime("%Y-%m-%d %H:%M:%S")) else: operate_num = self.operate_status(start_time.strftime("%Y-%m-%d %H:%M:%S"), current_time.strftime("%Y-%m-%d %H:%M:%S")) if operate_num == 0: StartTime = (dt.datetime.now() - dt.timedelta(minutes=15)).strftime('%Y-%m-%d %H:%M:%S') EndTime = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S') payload1 = {r'STime': StartTime, r'ETime': EndTime} try: get_response = requests.get(r'http://33.83.100.138:8080/getOperatorIntervention.html', params=payload1, timeout=10) # 4.7 GetManoperationRecord = get_response.text print("操作记录请求成功") except Exception as e: print(e) exception = "request failed,error type: %s" % type(e) else: GetManoperationRecord = json.loads(GetManoperationRecord) if len(GetManoperationRecord['resultList']) > 0: exception = "request success,data length:%s" % len(GetManoperationRecord['resultList']) else: exception = "request success,but no data" else: exception = None message_operate = [['人工操作记录接口', current_time, operate_num, exception]] self.pg.send_pg_data(sql=sql_send_message, data=message_operate) return def parse_failed_detector_send(self): current_time = dt.datetime.now() # current_date = current_time.date() current_date = str(current_time.date()) if IF_TEST: current_date = '2018-11-09' failed_detector = self.parsing_failed_check(current_date) pg = Postgres(ConnectInf.pg_inf_inter_info) self.pg.send_pg_data(sql=sql_send_parse_failed_detector, data=failed_detector) return