public void run() throws FileNotFoundException, JSONException, EmailException, IOException {
SpringStatManager springStatManager = SpringStatManager.getInstance();
List> lists = springStatManager.getMethodStatData();
String sqlMethod = "INSERT INTO springMethodStatData(controlServerIp,addtime,Class,Method,RunningCount,ConcurrentMax,ExecuteCount,"
+ "ExecuteErrorCount,ExecuteTimeMillis,JdbcCommitCount,JdbcRollbackCount,JdbcPoolConnectionOpenCount,"
+ "JdbcPoolConnectionCloseCount,JdbcResultSetOpenCount,JdbcResultSetCloseCount,JdbcExecuteCount,"
+ "JdbcExecuteErrorCount,JdbcExecuteTimeMillis,JdbcFetchRowCount,JdbcUpdateCount,LastError,LastErrorTime,"
+ "Histogram,Histogram_0_1,Histogram_1_10,Histogram_10_100,Histogram_100_1000,Histogram_1000_10000,Histogram_10000_100000,"
+ "Histogram_100000_1000000,Histogram_1000000_more) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
String sql = "INSERT INTO springStat (controlServerIp,addtime,Class,Method,ExecuteCount,ExecuteTimeMillis,"
+ "RunningCount,ConcurrentMax,JdbcExecuteCount,JdbcExecuteTimeMillis,JdbcCommitCount,JdbcRollbackCount,"
+ "JdbcFetchRowCount,JdbcUpdateCount,Histogram,Histogram_0_1,Histogram_1_10,Histogram_10_100,Histogram_100_1000,Histogram_1000_10000,"
+ "Histogram_10000_100000,Histogram_100000_1000000,Histogram_1000000_more) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";
for (Map list : lists){
long[] histogram = (long[]) list.get("Histogram");
int j= jdbcTemplate.update(sqlMethod, controlserver.getServerIp(),new Date(),list.get("Class"),list.get("Method"),list.get("RunningCount"),
list.get("ConcurrentMax"),list.get("ExecuteCount"),list.get("ExecuteErrorCount"),list.get("ExecuteTimeMillis"),list.get("JdbcCommitCount"),
list.get("JdbcRollbackCount"),list.get("JdbcPoolConnectionOpenCount"),list.get("JdbcPoolConnectionCloseCount"),list.get("JdbcResultSetOpenCount"),
list.get("JdbcResultSetCloseCount"),list.get("JdbcExecuteCount"),list.get("JdbcExecuteErrorCount"),list.get("JdbcExecuteTimeMillis"),
list.get("JdbcFetchRowCount"),list.get("JdbcUpdateCount"),list.get("LastError"),list.get("LastErrorTime"),
Arrays.toString((long[]) list.get("Histogram")),histogram[0],histogram[1],histogram[2],histogram[3],histogram[4],histogram[5],histogram[6],histogram[7]);
int i= jdbcTemplate.update(sql, controlserver.getServerIp(),new Date(),list.get("Class"),list.get("Method"),list.get("ExecuteCount"),list.get("ExecuteTimeMillis"),
list.get("RunningCount"),list.get("ConcurrentMax"),list.get("JdbcExecuteCount"),list.get("JdbcExecuteTimeMillis"),list.get("JdbcCommitCount"),
list.get("JdbcRollbackCount"),list.get("JdbcFetchRowCount"),list.get("JdbcUpdateCount"),Arrays.toString((long[]) list.get("Histogram")),
histogram[0],histogram[1],histogram[2],histogram[3],histogram[4],histogram[5],histogram[6],histogram[7]);
log.debug("update:" + i);
log.debug("update springMethodStatData:" + j);
}
springStatManager.resetStat();
}
贴个代码,这是我定时任务的方法,定时保存到mysql,希望对你有帮助。