From 95c0c2e94d390650d3954c30c6a7c805fe9c714c Mon Sep 17 00:00:00 2001 From: whyclj <1525436766@qq.com> Date: 星期四, 15 十月 2020 18:23:18 +0800 Subject: [PATCH] 负载添加历史实时数据记录功能 --- src/main/main_MonitorServer_Dynamicload.java | 8 + src/com/dev/base/data/Dynamicload_state.java | 10 src/com/dev/base/data/Dynamicload_RealDataRecord_Thread.java | 129 +++++++++++++++++++++ src/com/sql/Sql_Mysql.java | 1 src/com/version_inf/version_inf.txt | 6 src/com/dev/base/data/Dynamicload_Task_SQL.java | 164 +++++++++++++++++++++++++++ src/com/data/PowerArk_Task_SQL.java | 2 src/com/dev/base/data/Dynamicload_SocketClient_Thread.java | 11 + src/com/dev/base/data/Dynamicload_inf.java | 1 9 files changed, 322 insertions(+), 10 deletions(-) diff --git a/src/com/data/PowerArk_Task_SQL.java b/src/com/data/PowerArk_Task_SQL.java index 4e4160c..63518e7 100644 --- a/src/com/data/PowerArk_Task_SQL.java +++ b/src/com/data/PowerArk_Task_SQL.java @@ -360,7 +360,7 @@ dyna.button = new Dynamicload_button(dyna.dev_id); dyna.control = new Dynamicload_control(dyna.dev_id,dyna.getFZ_button_num()); - dyna.state = new Dynamicload_state(dyna.dev_id,0); + dyna.state = new Dynamicload_state(dyna.dev_id,dyna.getFZ_button_num()); dys.add(dyna); } } catch (Exception e) { diff --git a/src/com/dev/base/data/Dynamicload_RealDataRecord_Thread.java b/src/com/dev/base/data/Dynamicload_RealDataRecord_Thread.java new file mode 100644 index 0000000..60d58ec --- /dev/null +++ b/src/com/dev/base/data/Dynamicload_RealDataRecord_Thread.java @@ -0,0 +1,129 @@ +package com.dev.base.data; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import com.base.Com; +import com.sql.MysqlConnPool; + +public class Dynamicload_RealDataRecord_Thread implements Runnable{ + public static final int TESTDATA_RECORD_INTERVAL = 1; //记录数据间隔 + public static final int MAX_SAVE_DAY_COUNT = 180; + + + public MysqlConnPool pool; + public List<TestData_Record_Thread> threads; + public List<Dynamicload_inf> dinfs; + + public Dynamicload_RealDataRecord_Thread(MysqlConnPool pool,List<Dynamicload_inf> dinfs){ + this.pool = pool; + this.dinfs = dinfs; + threads = new ArrayList<>(); + } + + @Override + public void run() { + System.out.println("Dynamicload_RealDataRecord_Thread Start at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); + Date now = null; + Date last = new Date(0); + while(true) { + try { + now = new Date(); + + for(int i=0;i<dinfs.size();i++) { + boolean isExist = false; + Dynamicload_inf dinf = dinfs.get(i); + for(int k=0;k<threads.size();k++) { + if(threads.get(k).dinf.dev_id == dinf.dev_id) { + isExist = true; + break; + } + } + if(!isExist) { + TestData_Record_Thread thread = new TestData_Record_Thread(pool, dinf); + threads.add(thread); + new Thread(thread).start(); + } + + //构造今天和明天的历史实时数据表 + Dynamicload_Task_SQL.createTb_Dynamicload_realdata(pool, dinf.dev_id, now); + Dynamicload_Task_SQL.createTb_Dynamicload_realdata(pool, dinf.dev_id, tomorrow(now)); + + } + Date del_time = getDateBefore(now,MAX_SAVE_DAY_COUNT); + Dynamicload_Task_SQL.deleteHistoryData(pool, del_time); + //System.out.println(Com.getDateTimeFormat(del_time, Com.DTF_YMDhms)); + Thread.sleep(3000); + } catch (Exception e) { + try { + Thread.sleep(5000); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + e.printStackTrace(); + } + } + + } + + class TestData_Record_Thread implements Runnable{ + public MysqlConnPool pool; + public Dynamicload_inf dinf; + + public TestData_Record_Thread(MysqlConnPool pool,Dynamicload_inf dinf) { + this.pool = pool; + this.dinf = dinf; + } + + @Override + public void run() { + Date last = new Date(0); //上一次测试的时间 + Date now = null; //当前时间 + + while(true) { + try { + now = new Date(); + long timelong = (now.getTime()-last.getTime())/1000; + //System.out.println(timelong); + if(timelong >= TESTDATA_RECORD_INTERVAL) { + if(dinf.conn_state == 1) { + //通讯正常 + Dynamicload_Task_SQL.insertTb_dynamicload_realdata(pool, dinf, now); + last = now; + } + } + Thread.sleep(10); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + /** + * 返回明天日期 + * @param today + * @return + */ + public Date tomorrow(Date today) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(today); + calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 1); + return calendar.getTime(); + } + + /** + * 获取指定时间之前多少天的时间 + * @param d + * @param day + * @return + */ + public static Date getDateBefore(Date d,int day){ + Calendar now =Calendar.getInstance(); + now.setTime(d); + now.set(Calendar.DATE,now.get(Calendar.DATE)-day); + return now.getTime(); + } +} diff --git a/src/com/dev/base/data/Dynamicload_SocketClient_Thread.java b/src/com/dev/base/data/Dynamicload_SocketClient_Thread.java index 435fba5..24cbe4e 100644 --- a/src/com/dev/base/data/Dynamicload_SocketClient_Thread.java +++ b/src/com/dev/base/data/Dynamicload_SocketClient_Thread.java @@ -26,9 +26,13 @@ this.conn_pool = conn_pool; this.dinf = dinf; - dbutton = new Dynamicload_button(dinf.getDev_id()); - dcontrol = new Dynamicload_control(dinf.getDev_id(),dinf.getFZ_button_num()); - dstate = new Dynamicload_state(dinf.getDev_id(),dinf.getFZ_button_num()); + dbutton = dinf.button; + dcontrol = dinf.control; + dstate = dinf.state; + + //dbutton = new Dynamicload_button(dinf.getDev_id()); + //dcontrol = new Dynamicload_control(dinf.getDev_id(),dinf.getFZ_button_num()); + //dstate = new Dynamicload_state(dinf.getDev_id(),dinf.getFZ_button_num()); master = new MyModbusMaster(dinf.getDev_ip(), MyModbusMaster.SLAVEID_DEFAULT); //System.out.println("master: "+master); } @@ -79,6 +83,7 @@ //System.err.println(dinf.dev_id + "=====" + ((new Date()).getTime() - last.getTime())); last = new Date(); PowerArk_Task_SQL.insertOrUpdateDeviceConnectState(conn_pool, dinf.dev_id, master); + dinf.conn_state = master.getConnectState(); if (runCount % 10 == 0) { // 更新当前设备ip master.setTarget_ip(dinf.dev_ip); diff --git a/src/com/dev/base/data/Dynamicload_Task_SQL.java b/src/com/dev/base/data/Dynamicload_Task_SQL.java new file mode 100644 index 0000000..7bcc396 --- /dev/null +++ b/src/com/dev/base/data/Dynamicload_Task_SQL.java @@ -0,0 +1,164 @@ +package com.dev.base.data; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Date; + +import com.base.Com; +import com.sql.MysqlConnPool; +import com.sql.Sql_Mysql; + +public class Dynamicload_Task_SQL { + + /** + * 创建指定时间的历史实时数据库表 + * @param pool + * @param dev_id + * @param now + */ + public static void createTb_Dynamicload_realdata(MysqlConnPool pool, int dev_id, Date now) { + String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_Dynamicload_RealData+dev_id+"_"+Com.getDateTimeFormat(now, Com.DTF_Y_M_D)+" (" + + " num int(11) NOT NULL AUTO_INCREMENT COMMENT '主键'," + + " dev_id int(11) NOT NULL DEFAULT '1' COMMENT '设备id'," + + " record_time datetime NOT NULL DEFAULT '2000-01-01 00:00:00'," + + " FZ_b1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮1'," + + " FZ_b2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮2'," + + " FZ_b3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮3'," + + " FZ_b4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮4'," + + " FZ_b5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮5'," + + " FZ_b6 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮6'," + + " FZ_b7 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮7'," + + " FZ_b8 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮8'," + + " FZ_b9 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮9'," + + " FZ_b10 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮10'," + + " FZ_b11 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮11'," + + " FZ_fw1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮1'," + + " FZ_fw2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮2'," + + " FZ_fw3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮3'," + + " FZ_fw4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮4'," + + " FZ_fw5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮5'," + + " FZ_fw6 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮6'," + + " FZ_fw7 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮7'," + + " FZ_fw8 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮8'," + + " FZ_fw9 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮9'," + + " FZ_fw10 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮10'," + + " FZ_fw11 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮11'," + + " FZ_ex1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮1'," + + " FZ_ex2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮2'," + + " FZ_ex3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮3'," + + " FZ_ex4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮4'," + + " FZ_ex5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮5'," + + " FZ_ex6 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮6'," + + " FZ_ex7 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮7'," + + " FZ_ex8 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮8'," + + " FZ_ex9 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮9'," + + " FZ_ex10 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮10'," + + " FZ_ex11 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮11'," + + " start_auto int(11) NOT NULL DEFAULT '1' COMMENT '启动自动加载'," + + " stop_auto int(11) NOT NULL DEFAULT '1' COMMENT '停止自动加载'," + + " sudden_crease int(11) NOT NULL DEFAULT '1' COMMENT '突加突卸'," + + " all_open int(11) NOT NULL DEFAULT '1' COMMENT '全部分闸'," + + " actual_set_power float NOT NULL DEFAULT '1' COMMENT '实际设定功率'," + + " output_power float NOT NULL DEFAULT '1' COMMENT '已输出功率'," + + " set_power float NOT NULL DEFAULT '1' COMMENT '设定功率'," + + " interval_time float NOT NULL DEFAULT '1' COMMENT '间隔时间s'," + + " actual_curr float NOT NULL DEFAULT '1' COMMENT '实际电流'," + + " actual_mov float NOT NULL DEFAULT '1' COMMENT '实际电压'," + + " switch_on int(11) NOT NULL DEFAULT '1' COMMENT '是否合闸'," + + " FZ_autostate1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态1'," + + " FZ_autostate2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态2'," + + " FZ_autostate3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态3'," + + " FZ_autostate4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态4'," + + " FZ_autostate5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态5'," + + " react_overtem int(11) NOT NULL DEFAULT '1' COMMENT '电抗超温'," + + " water_overtem int(11) NOT NULL DEFAULT '1' COMMENT '冷却水超温'," + + " water_level_low int(11) NOT NULL DEFAULT '1' COMMENT '冷却水液位低'," + + " water_pressure_high int(11) NOT NULL DEFAULT '1' COMMENT '冷却水压高'," + + " local_control int(11) NOT NULL DEFAULT '1' COMMENT '就地控制'," + + " back_control int(11) NOT NULL DEFAULT '1' COMMENT '后台控制'," + + " central_control int(11) NOT NULL DEFAULT '1' COMMENT '中控控制'," + + " switch_state int(11) NOT NULL DEFAULT '1' COMMENT '开关柜状态'," + + " inter_volume_M200 int(11) NOT NULL DEFAULT '1' COMMENT '中间量M200'," + + " fan_button int(11) NOT NULL DEFAULT '1' COMMENT '风机按钮'," + + " fan_output int(11) NOT NULL DEFAULT '1' COMMENT '风机输出'," + + " allow_close int(11) NOT NULL DEFAULT '0' COMMENT '是否允许合闸'," + + " note varchar(255) NOT NULL DEFAULT ''," + + " PRIMARY KEY (num)," + + " KEY dev_id_key (dev_id)," + + " KEY index_record_time (record_time) USING BTREE" + + ") ENGINE=InnoDB DEFAULT CHARSET=utf8;"; + Sql_Mysql sql = new Sql_Mysql(pool.getConn()); + try { + sql.sqlMysqlExecute(sql_str); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + sql.close_con(); + } + } + + /** + * 删除创建时间超时的历史实时记录表 + * @param conn_pool + * @param deldate + */ + public static void deleteHistoryData(MysqlConnPool conn_pool,Date deldate) { + String sql_select_strs = " select TABLE_NAME,UPDATE_TIME,CREATE_TIME " + + " from information_schema.tables " + + " where table_schema='db_dynamicsystem' " + + " AND TABLE_NAME like 'tb_dynamicload_realdata_%' " + + " AND CREATE_TIME <= '"+Com.getDateTimeFormat(deldate, Com.DTF_YMDhms)+"';" ; + String sql_delete_strs = " DROP TABLE IF EXISTS "; + Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); + ResultSet res = null; + int count = 0; + res = sql.sqlMysqlQuery(sql_select_strs); + try { + while(res.next()) { + if(count > 0) { + sql_delete_strs += ","; + } + + sql_delete_strs += "db_dynamicsystem." + res.getString("TABLE_NAME"); + System.out.println("删除:"+res.getString("TABLE_NAME")+"\t at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); + count++; + } + if(count >0) { + sql.sqlMysqlExecute(sql_delete_strs); + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + if(res != null) { + try { + res.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + sql.close_con(); + } + } + + /** + * + * @param pool + * @param dinf + * @param now + */ + public static void insertTb_dynamicload_realdata(MysqlConnPool pool, Dynamicload_inf dinf, Date now) { + Dynamicload_button btn = dinf.button; + Dynamicload_state state = dinf.state; + String sql_str = "INSERT INTO " + Sql_Mysql.Tb_Dynamicload_RealData+dinf.dev_id+"_"+Com.getDateTimeFormat(now, Com.DTF_Y_M_D) + + "(dev_id,record_time,FZ_b1,FZ_b2,FZ_b3,FZ_b4,FZ_b5,FZ_b6,FZ_b7,FZ_b8,FZ_b9,FZ_b10,FZ_b11,FZ_fw1,FZ_fw2,FZ_fw3,FZ_fw4,FZ_fw5,FZ_fw6,FZ_fw7,FZ_fw8,FZ_fw9,FZ_fw10,FZ_fw11,FZ_ex1,FZ_ex2,FZ_ex3,FZ_ex4,FZ_ex5,FZ_ex6,FZ_ex7,FZ_ex8,FZ_ex9,FZ_ex10,FZ_ex11,start_auto,stop_auto,sudden_crease,all_open,actual_set_power,output_power,set_power,interval_time,actual_curr,actual_mov,switch_on,FZ_autostate1,FZ_autostate2,FZ_autostate3,FZ_autostate4,FZ_autostate5,react_overtem,water_overtem,water_level_low,water_pressure_high,local_control,back_control,central_control,switch_state,inter_volume_M200,fan_button,fan_output,allow_close) " + + "VALUES("+dinf.dev_id+",'"+Com.getDateTimeFormat(now, Com.DTF_YMDhms)+"',"+btn.FZ_b1+","+btn.FZ_b2+","+btn.FZ_b3+","+btn.FZ_b4+","+btn.FZ_b5+","+btn.FZ_b6+","+btn.FZ_b7+","+btn.FZ_b8+","+btn.FZ_b9+","+btn.FZ_b10+","+btn.FZ_b11+","+btn.FZ_fw1+","+btn.FZ_fw2+","+btn.FZ_fw3+","+btn.FZ_fw4+","+btn.FZ_fw5+","+btn.FZ_fw6+","+btn.FZ_fw7+","+btn.FZ_fw8+","+btn.FZ_fw9+","+btn.FZ_fw10+","+btn.FZ_fw11+","+btn.FZ_ex1+","+btn.FZ_ex2+","+btn.FZ_ex3+","+btn.FZ_ex4+","+btn.FZ_ex5+","+btn.FZ_ex6+","+btn.FZ_ex7+","+btn.FZ_ex8+","+btn.FZ_ex9+","+btn.FZ_ex10+","+btn.FZ_ex11+","+state.start_auto+","+state.stop_auto+","+state.sudden_crease+","+state.all_open+","+state.actual_set_power+","+state.output_power+","+state.set_power+","+state.interval_time+","+state.actual_curr+","+state.actual_mov+","+state.switch_on+","+state.FZ_autostate1+","+state.FZ_autostate2+","+state.FZ_autostate3+","+state.FZ_autostate4+","+state.FZ_autostate5+","+state.react_overtem+","+state.water_overtem+","+state.water_level_low+","+state.water_pressure_high+","+state.local_control+","+state.back_control+","+state.central_control+","+state.switch_state+","+state.inter_volume_M200+","+state.fan_button+","+state.fan_output+","+state.allow_close+");"; + Sql_Mysql sql = new Sql_Mysql(pool.getConn()); + try { + sql.sqlMysqlExecute(sql_str); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + sql.close_con(); + } + } +} diff --git a/src/com/dev/base/data/Dynamicload_inf.java b/src/com/dev/base/data/Dynamicload_inf.java index e0b456f..d6be822 100644 --- a/src/com/dev/base/data/Dynamicload_inf.java +++ b/src/com/dev/base/data/Dynamicload_inf.java @@ -13,6 +13,7 @@ public int FZ_button_num; //负载柜按钮数量 public String note; + public int conn_state = 0; public Dynamicload_button button; public Dynamicload_control control; public Dynamicload_state state; diff --git a/src/com/dev/base/data/Dynamicload_state.java b/src/com/dev/base/data/Dynamicload_state.java index 8ff45cd..ff99a17 100644 --- a/src/com/dev/base/data/Dynamicload_state.java +++ b/src/com/dev/base/data/Dynamicload_state.java @@ -257,11 +257,11 @@ batch.addLocator(3,MyModbusUtils.createBaseLocator(11, master));//全部分闸 if(fz_button_num==11){ batch.addLocator(4,MyModbusUtils.createBaseLocator(1,DataType.TWO_BYTE_INT_SIGNED, master)); //实际设定功率4 - batch.addLocator(5,MyModbusUtils.createBaseLocator(2,DataType.TWO_BYTE_INT_SIGNED, master));//已输出功率 - batch.addLocator(6,MyModbusUtils.createBaseLocator(4,DataType.TWO_BYTE_INT_SIGNED, master));//设定功率 - batch.addLocator(7,MyModbusUtils.createBaseLocator(6,DataType.TWO_BYTE_INT_SIGNED,master)); //间隔时间 - batch.addLocator(8,MyModbusUtils.createBaseLocator(7,DataType.TWO_BYTE_INT_SIGNED, master));//实际电流 - batch.addLocator(9,MyModbusUtils.createBaseLocator(8,DataType.TWO_BYTE_INT_SIGNED, master));//实际电压4 + batch.addLocator(5,MyModbusUtils.createBaseLocator(2,DataType.TWO_BYTE_INT_SIGNED, master)); //已输出功率 + batch.addLocator(6,MyModbusUtils.createBaseLocator(4,DataType.TWO_BYTE_INT_SIGNED, master)); //设定功率 + batch.addLocator(7,MyModbusUtils.createBaseLocator(6,DataType.TWO_BYTE_INT_SIGNED,master)); //间隔时间 + batch.addLocator(8,MyModbusUtils.createBaseLocator(7,DataType.TWO_BYTE_INT_SIGNED, master)); //实际电流 + batch.addLocator(9,MyModbusUtils.createBaseLocator(8,DataType.TWO_BYTE_INT_SIGNED, master)); //实际电压4 }else { batch.addLocator(4,MyModbusUtils.createBaseLocator(2,DataType.TWO_BYTE_INT_SIGNED, master)); //实际设定功率4 diff --git a/src/com/sql/Sql_Mysql.java b/src/com/sql/Sql_Mysql.java index 532d329..fd7faa3 100644 --- a/src/com/sql/Sql_Mysql.java +++ b/src/com/sql/Sql_Mysql.java @@ -162,6 +162,7 @@ public final static String Tb_Dynamicload_Control = DB_DynamicSystem + ".tb_dynamicload_control"; //电源柜控制表 public final static String Tb_Device_ConnectState = DB_Electric2MWSystem+".tb_device_connectstate"; //设备通讯状态表 + public final static String Tb_Dynamicload_RealData = DB_DynamicSystem+".tb_dynamicload_realdata_"; //历史实时数据记录表 //--------------------------------------------------------------------------------------------// public Connection mysql_con; diff --git a/src/com/version_inf/version_inf.txt b/src/com/version_inf/version_inf.txt index d84d34f..bc35db0 100644 --- a/src/com/version_inf/version_inf.txt +++ b/src/com/version_inf/version_inf.txt @@ -2,4 +2,8 @@ 中船重工电源柜通讯程序 V1.201 - 添加设备通讯中断监测记录功能 \ No newline at end of file + 添加设备通讯中断监测记录功能 + +V1.202 2020-10-15 by lijun + 1.添加历史实时数据记录功能 + \ No newline at end of file diff --git a/src/main/main_MonitorServer_Dynamicload.java b/src/main/main_MonitorServer_Dynamicload.java index 2d6305e..034db28 100644 --- a/src/main/main_MonitorServer_Dynamicload.java +++ b/src/main/main_MonitorServer_Dynamicload.java @@ -11,6 +11,7 @@ import com.data.PowerArk_ServerSocket_Thread_SQL; import com.data.PowerArk_SocketCliet_Thread; import com.data.PowerArk_Task_SQL; +import com.dev.base.data.Dynamicload_RealDataRecord_Thread; import com.dev.base.data.Dynamicload_ServerSocket_Thread; import com.dev.base.data.Dynamicload_inf; import com.sql.MysqlConnPool; @@ -82,6 +83,13 @@ //读取每套负载系统的信息 Dynamicload_ServerSocket_Thread server = new Dynamicload_ServerSocket_Thread(GB_MysqlConnPool,GB_DevData); new Thread(server).start(); + + /**************** 历史实时数据记录线程 *************************************/ + { + Dynamicload_RealDataRecord_Thread record_thread = new Dynamicload_RealDataRecord_Thread(GB_MysqlConnPool, GB_DevData); + new Thread(record_thread).start(); + } + /*********************************************************************************/ } -- Gitblit v1.9.1