From 2f3e3ec2c0cad87eab8a6d170caffc06a4e11c2d Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期四, 07 十一月 2019 09:55:24 +0800
Subject: [PATCH] set getData 1 sec and add day task
---
src/main/java/com/cloud/count/listener/CountInitTask.java | 9 ++
src/main/resources/index.html | 4
src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java | 6 +-
src/main/java/com/cloud/count/listener/CountTaskListener.java | 16 +++++
src/main/java/com/cloud/count/listener/CountListener.java | 32 ++++++++++
src/main/java/com/cloud/count/listener/TimerManager.java | 34 +++++++++++
src/main/java/com/cloud/count/listener/CountThread.java | 43 +++-----------
7 files changed, 103 insertions(+), 41 deletions(-)
diff --git a/src/main/java/com/cloud/count/listener/CountInitTask.java b/src/main/java/com/cloud/count/listener/CountInitTask.java
index 0e11c69..6c01fe1 100644
--- a/src/main/java/com/cloud/count/listener/CountInitTask.java
+++ b/src/main/java/com/cloud/count/listener/CountInitTask.java
@@ -1,10 +1,17 @@
package com.cloud.count.listener;
+import com.cloud.count.service.serviceImpl.CountServiceImpl;
+
+import java.util.HashMap;
import java.util.TimerTask;
public class CountInitTask extends TimerTask {
@Override
public void run() {
-
+ CountServiceImpl.baseEnters = CountServiceImpl.totalEnters;
+ CountServiceImpl.baseExits = CountServiceImpl.totalExits;
+ CountServiceImpl.dayAllMap = new HashMap<>();
+ CountServiceImpl.dayInMap = new HashMap<>();
+ CountServiceImpl.dayOutMap = new HashMap<>();
}
}
diff --git a/src/main/java/com/cloud/count/listener/CountListener.java b/src/main/java/com/cloud/count/listener/CountListener.java
index 6a12900..a59e18e 100644
--- a/src/main/java/com/cloud/count/listener/CountListener.java
+++ b/src/main/java/com/cloud/count/listener/CountListener.java
@@ -25,6 +25,10 @@
public class CountListener implements ApplicationListener<ContextRefreshedEvent> {
static ServerSocket server;
static Integer port = 2010;
+ static boolean isServerReboot = false;
+
+ @Autowired
+ private CountDao dao;
@Override
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
@@ -32,7 +36,35 @@
if(contextRefreshedEvent.getApplicationContext().getParent() !=null){
return;
}
+ op: if(!isServerReboot){
+ isServerReboot = true;
+ CountState state = dao.getCountState();//鎭㈠缁熻鐘舵��
+ Date nowDate = new Date();
+ Date BaseDate = new Date(state.getBaseTime()*1000L);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ if(!sdf.format(nowDate).equals(sdf.format(BaseDate))){//鍘嗗彶鏁版嵁涓嶇瓑浜庡綋澶�
+// CountServiceImpl.baseEnters = people.getEnters();
+// CountServiceImpl.baseExits = people.getExits();
+// CountServiceImpl.realtimeBaseEnters = people.getEnters();
+// CountServiceImpl.realtimebBaseExits = people.getExits();
+// CountServiceImpl.errorCount = 0;
+ People initPeople = new People();
+ initPeople.setEnters(0);
+ initPeople.setExits(0);
+ CountServiceImpl.initCountArgs(initPeople);
+ CountServiceImpl.errorCount = 0;
+ break op;
+ }
+ //杩樺師鐘舵��
+ CountServiceImpl.baseEnters = state.getBaseEnters();
+ CountServiceImpl.baseExits = state.getBaseExits();
+ CountServiceImpl.totalEnters = state.getTotalEnters();
+ CountServiceImpl.totalExits = state.getTotalExits();
+ CountServiceImpl.realtimeBaseEnters = state.getRealtimeBaseEnters();
+ CountServiceImpl.realtimebBaseExits = state.getRealtimeBaseExits();
+ CountServiceImpl.errorCount = state.getErrorCount();
+ }
new Thread(new Runnable() {
@Override
public void run() {
diff --git a/src/main/java/com/cloud/count/listener/CountTaskListener.java b/src/main/java/com/cloud/count/listener/CountTaskListener.java
index bfcdcfb..11b7bd8 100644
--- a/src/main/java/com/cloud/count/listener/CountTaskListener.java
+++ b/src/main/java/com/cloud/count/listener/CountTaskListener.java
@@ -1,4 +1,18 @@
package com.cloud.count.listener;
-public class CountTaskListener {
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+@Component
+public class CountTaskListener implements ServletContextListener {
+ @Override
+ public void contextInitialized(ServletContextEvent servletContextEvent) {
+ new TimerManager();
+ }
+
+ @Override
+ public void contextDestroyed(ServletContextEvent servletContextEvent) {
+
+ }
}
diff --git a/src/main/java/com/cloud/count/listener/CountThread.java b/src/main/java/com/cloud/count/listener/CountThread.java
index abd3000..2cabd09 100644
--- a/src/main/java/com/cloud/count/listener/CountThread.java
+++ b/src/main/java/com/cloud/count/listener/CountThread.java
@@ -14,7 +14,7 @@
public class CountThread implements Runnable {
private Logger logger = LoggerFactory.getLogger(this.getClass());
- static boolean isServerReboot = false;
+
private CountDao dao;
@@ -36,15 +36,16 @@
try{
iReader = new BufferedReader(new InputStreamReader(client.getInputStream(), encoding));
iWriter = new BufferedWriter(new OutputStreamWriter(client.getOutputStream(), encoding));
-
+ String msgStr = "";
+ String xmlStr = "";
+ People people = null;
while (true) {
- String str = iReader.readLine();
+ msgStr = iReader.readLine();
sendAck(iWriter);
- String xmlStr = XmlUtil.toXmlStr(str);
+ xmlStr = XmlUtil.toXmlStr(msgStr);
// 濡傛灉瀛樺湪TotalEnters銆傚垯璇佹槑杩斿洖鐨勬槸瀹炴椂鏁版嵁鐨剎ml
- People people = null;
if(xmlStr.indexOf("TotalEnters")>-1){
people = XmlUtil.realTimeXmlToPeople(xmlStr);
int inCreEnter = CountServiceImpl.addEnter(people.getEnters());//杩涘叆浜烘暟澧為噺
@@ -55,36 +56,12 @@
people.setEnters(CountServiceImpl.totalEnters);//灏嗙疮鍔犲悗鐨勬暟閲忓瓨鍒版暟鎹簱涓�
people.setExits(CountServiceImpl.totalExits);
boolean resultB = dao.savePeople(people);
- System.out.println("totalEnters:"+CountServiceImpl.totalEnters);
//鎬昏繘鍏ユ暟閲忔垨鑰呮�诲嚭鍘绘暟閲忥紝涓嶄竴瀹氬摢涓�涓厛鍒�2瀛楄妭int鐨勪笂闄�65535
// if( CountServiceImpl.totalEnters < CountServiceImpl.baseEnters){
// //琛ㄧず缁熻璁惧閲嶆柊鍚姩浜�,缁熻鍙傛暟褰掗浂
// CountServiceImpl.initCountArgs(people);
// }
- op: if(!isServerReboot){
- isServerReboot = true;
- CountState state = dao.getCountState();//鎭㈠缁熻鐘舵��
- Date nowDate = new Date();
- Date BaseDate = new Date(state.getBaseTime()*1000L);
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- if(!sdf.format(nowDate).equals(sdf.format(BaseDate))){//鍘嗗彶鏁版嵁涓嶇瓑浜庡綋澶�
- CountServiceImpl.baseEnters = people.getEnters();
- CountServiceImpl.baseExits = people.getExits();
- CountServiceImpl.realtimeBaseEnters = people.getEnters();
- CountServiceImpl.realtimebBaseExits = people.getExits();
- CountServiceImpl.errorCount = 0;
- break op;
- }
- //杩樺師鐘舵��
- CountServiceImpl.baseEnters = state.getBaseEnters();
- CountServiceImpl.baseExits = state.getBaseExits();
- CountServiceImpl.totalEnters = state.getTotalEnters();
- CountServiceImpl.totalExits = state.getTotalExits();
- CountServiceImpl.realtimeBaseEnters = state.getRealtimeBaseEnters();
- CountServiceImpl.realtimebBaseExits = state.getRealtimeBaseExits();
- CountServiceImpl.errorCount = state.getErrorCount();
- }
//鎬昏繘鍏ヤ汉鏁板皬浜庢�诲嚭鍘荤殑浜烘暟锛岃〃绀虹粺璁¤澶囧湪鏀惧鏃堕棿锛堝嚭鍘荤殑浜烘暟澶т簬杩涘叆鐨勪汉鏁帮級閲嶅惎浜�
if(CountServiceImpl.totalEnters < CountServiceImpl.totalExits){
@@ -112,8 +89,6 @@
}
}
- }catch (IOException ex){
-
}catch (Exception e){
System.out.println("exception:"+e.getMessage());
}
@@ -135,13 +110,13 @@
public static void sendAck(BufferedWriter iWriter) {
String statusLine = "HTTP/1.0 200 OK"+CRLF;
String contentTypeLine = "Content-type: text/html"+CRLF ;
- String connectionClose = "Connection: Keep-Alive"+CRLF ;
- String contentLengthLine = "Content-Length: 0"+CRLF +CRLF;;
+ String connectionAlive = "Connection: Keep-Alive"+CRLF ;
+ String contentLengthLine = "Content-Length: 0"+CRLF +CRLF;
try {
iWriter.write(statusLine);
iWriter.write(contentTypeLine);
- iWriter.write(connectionClose);
+ iWriter.write(connectionAlive);
iWriter.write(contentLengthLine);
iWriter.flush();
} catch (IOException ex) {
diff --git a/src/main/java/com/cloud/count/listener/TimerManager.java b/src/main/java/com/cloud/count/listener/TimerManager.java
index c6bfbd6..3e77c7b 100644
--- a/src/main/java/com/cloud/count/listener/TimerManager.java
+++ b/src/main/java/com/cloud/count/listener/TimerManager.java
@@ -1,4 +1,38 @@
package com.cloud.count.listener;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Timer;
+
public class TimerManager {
+
+ private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
+
+ public TimerManager() {
+ Calendar calendar = Calendar.getInstance();
+ /*** 瀹氬埗姣忔棩6:00鎵ц鏂规硶 ***/
+ calendar.set(Calendar.HOUR_OF_DAY, 6);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ Date date=calendar.getTime(); //绗竴娆℃墽琛屽畾鏃朵换鍔$殑鏃堕棿
+ System.out.println(date);
+ System.out.println("before 鏂规硶姣旇緝锛�"+date.before(new Date()));
+ //濡傛灉绗竴娆℃墽琛屽畾鏃朵换鍔$殑鏃堕棿 灏忎簬 褰撳墠鐨勬椂闂�
+ //姝ゆ椂瑕佸湪 绗竴娆℃墽琛屽畾鏃朵换鍔$殑鏃堕棿 鍔犱竴澶╋紝浠ヤ究姝や换鍔″湪涓嬩釜鏃堕棿鐐规墽琛屻�傚鏋滀笉鍔犱竴澶╋紝浠诲姟浼氱珛鍗虫墽琛屻�傚惊鐜墽琛岀殑鍛ㄦ湡鍒欎互褰撳墠鏃堕棿涓哄噯
+ if (date.before(new Date())) {
+ date = this.addDay(date, 1);
+ System.out.println(date);
+ }
+ Timer timer = new Timer();
+ CountInitTask task = new CountInitTask();
+
+ timer.schedule(task, date, PERIOD_DAY);
+ }
+
+ public Date addDay(Date date, int num) {
+ Calendar startDT = Calendar.getInstance();
+ startDT.setTime(date);
+ startDT.add(Calendar.DAY_OF_MONTH, num);
+ return startDT.getTime();
+ }
}
diff --git a/src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java b/src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java
index cfb9185..80c0d12 100644
--- a/src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java
+++ b/src/main/java/com/cloud/count/service/serviceImpl/CountServiceImpl.java
@@ -66,9 +66,9 @@
"30","35","40","45","50","55"};
public static volatile int countType = 0;
- private static Map<Integer,Integer> dayAllMap = new HashMap<>();
- private static Map<Integer,Integer> dayOutMap = new HashMap<>();
- private static Map<Integer,Integer> dayInMap = new HashMap<>();
+ public static Map<Integer,Integer> dayAllMap = new HashMap<>();
+ public static Map<Integer,Integer> dayOutMap = new HashMap<>();
+ public static Map<Integer,Integer> dayInMap = new HashMap<>();
public static int addEnter(int count) {
int inCre = 0;
diff --git a/src/main/resources/index.html b/src/main/resources/index.html
index abf7c33..da646c6 100644
--- a/src/main/resources/index.html
+++ b/src/main/resources/index.html
@@ -290,8 +290,8 @@
$(function () {
startRequest();
- setInterval("startRequest()", 3000 );
- setInterval("nowPeople()", 3000);
+ setInterval("startRequest()", 1000 );
+ setInterval("nowPeople()", 1000);
});
function update() {
$.messager.confirm('娑堟伅','纭畾杩涜鍩虹璁剧疆鍚楋紵',function(r){
--
Gitblit v1.8.0