def call_pg_function(self,function_name,args): db = Postgres.get_instance() result = None if db.conn is not None: try: result = db.cr.callproc(function_name, args) db.conn.commit() db.db_close() except Exception as e: print('call_pg_function error function_name is %s'% function_name, e) else: conn, cr = db.db_conn() if conn: try: assert cr is not None result = db.cr.callproc(function_name, args) except psycopg2.IntegrityError as e: print(e) finally: conn.commit() db.db_close() else: logger2.error("数据库连接失败!") # except Exception as e: # print('call_pg_function error function_name is %s'%function_name, e) return result
def subsys_intid_match(self): db = Postgres.get_instance() result = db.call_pg_data(SituationOperate.sql_subsys_inf) grouped = result.groupby(['subsystem_id']) for k1, group in grouped: self.subsys_relation[k1] = group['site_id'].tolist() # print(self.subsys_relation) return result
def operate_statistic(self): db = Postgres.get_instance() if IFTEST: result = db.call_pg_data(SituationOperate.sql_operate_statistic_test) else: result = db.call_pg_data(SituationOperate.sql_operate_statistic) if len(result)>0: result['oper_type'] = result['all_type'].apply(lambda x: list(set(x.split(',')))) # self.operator_statistic(result) self.int_statistic(result) return result else: print("can't get operate data!please check database table and time!") return None
def so_run(message_quue): db = Postgres.get_instance() interval = SO_INTERVAL local_time = dt.datetime.now() stime = local_time - dt.timedelta(minutes=10) etime = local_time stime = dt.datetime.strftime(stime, '%Y-%m-%d %H:%M:%S') etime = dt.datetime.strftime(etime, '%Y-%m-%d %H:%M:%S') # stime = '2018-10-22 00:00:00' # etime = '2018-10-22 23:00:00' args = [stime, etime, interval] S1 = SituationOperate() try: S1.call_pg_function(S1.sql_alarm_operate_match, args) except Exception as e: logger2.error('so_run', e) else: message_quue.put() logger2.info("完成一轮调控记录匹配") finally: db.db_close()
def get_operate_data(self): db = Postgres.get_instance() result = db.call_pg_data(SituationOperate.sql) return result