Browse Source

0.2.2读报警列表改成线程池刷新

menglu 3 years ago
parent
commit
a5096f59eb

+ 1 - 1
ibms-data-sdk/pom.xml

@@ -2,7 +2,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.persagy</groupId>
 	<artifactId>ibms-data-sdk</artifactId>
-	<version>0.2.1</version>
+	<version>0.2.2</version>
 
 	<repositories>
 		<repository>

+ 8 - 8
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/HttpClientUtil.java

@@ -5,9 +5,6 @@ import java.io.InputStream;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import cn.hutool.core.lang.Tuple;
-import com.alibaba.fastjson.JSONObject;
-import org.apache.http.Header;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.HttpClient;
@@ -18,8 +15,11 @@ import org.apache.http.client.methods.HttpPut;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
+
+import cn.hutool.core.lang.Tuple;
 import sun.misc.BASE64Encoder;
 
+@SuppressWarnings("restriction")
 public class HttpClientUtil {
 	private static Map<String, HttpClientUtil> instanceMap = new ConcurrentHashMap<String, HttpClientUtil>();
 
@@ -180,12 +180,12 @@ public class HttpClientUtil {
 		httpost.setEntity(entity);
 		entity.setContentType("application/json");
 		HttpResponse httpResponse = client.execute(httpost);
-		String guid= httpResponse.getHeaders("guid")[0].getValue();
+		String guid = httpResponse.getHeaders("guid")[0].getValue();
 		HttpEntity entity2 = httpResponse.getEntity();
-		byte[] data= EntityUtils.toByteArray(entity2);
-		BASE64Encoder encoder=new BASE64Encoder();
-		String imageBase64="data:image/png;base64,"+encoder.encodeBuffer(data).trim();
-		imageBase64=imageBase64.replaceAll("\n","").replaceAll("\r","").replaceAll(" ","");
+		byte[] data = EntityUtils.toByteArray(entity2);
+		BASE64Encoder encoder = new BASE64Encoder();
+		String imageBase64 = "data:image/png;base64," + encoder.encodeBuffer(data).trim();
+		imageBase64 = imageBase64.replaceAll("\n", "").replaceAll("\r", "").replaceAll(" ", "");
 		Tuple tuple = new Tuple(guid, imageBase64);
 		return tuple;
 	}

+ 11 - 0
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/util/RWDAlarmUtil.java

@@ -7,6 +7,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -18,10 +21,14 @@ import com.persagy.ibms.core.data.SceneDataValue;
 import com.persagy.ibms.core.util.LogUtil;
 import com.persagy.ibms.core.util.RWDUtil;
 
+import cn.hutool.core.thread.ExecutorBuilder;
 import lombok.extern.slf4j.Slf4j;
 
 @Slf4j
 public class RWDAlarmUtil {
+	public static ExecutorService executor = ExecutorBuilder.create().setCorePoolSize(1).setMaxPoolSize(1)
+			.setWorkQueue(new LinkedBlockingQueue<>(256)).setHandler(new ThreadPoolExecutor.AbortPolicy()).build();
+
 	public static JSONArray history_alarm_path = new JSONArray();
 	static Map<Integer, String> stateMap = new ConcurrentHashMap<Integer, String>();
 	static Map<Integer, String> statusMap = new ConcurrentHashMap<Integer, String>();
@@ -694,7 +701,9 @@ public class RWDAlarmUtil {
 					String get_url = Constant.alarm_url + "/alarm-record/page" + "?appId=" + "0" + "&userId=" + "systemId" + "&projectId="
 							+ RepositoryContainer.RepositoryProject.projectId + "&groupCode=" + RepositoryContainer.RepositoryProject.groupCode
 							+ "&dealType=0&size=" + page_size + "&current=" + page_current;
+					log.warn("onOpen refresh get start: " + get_url);
 					String getResultString = HttpClientUtil.instance("alarm").get(get_url);
+					log.warn("onOpen refresh get end: " + get_url);
 					JSONObject getResult = JSON.parseObject(getResultString);
 					JSONArray ContentInner = (JSONArray) getResult.get("Content");
 					JSONArray ids = new JSONArray();
@@ -718,7 +727,9 @@ public class RWDAlarmUtil {
 						postParamInner.put("groupCode", RepositoryContainer.RepositoryProject.groupCode);
 						postParamInner.put("ids", ids);
 						String post_url = Constant.alarm_url + "/alarmToWorkOrder/queryOrderStateByAlarmIds";
+						log.warn("onOpen refresh post start: " + post_url + "\t" + "ids: " + ids.size());
 						String postResultString = HttpClientUtil.instance("alarm").post(post_url, postParamInner.toJSONString());
+						log.warn("onOpen refresh post end: " + post_url + "\t" + "ids: " + ids.size());
 						JSONObject postResult = JSON.parseObject(postResultString);
 						JSONArray ContentOrderState = (JSONArray) postResult.get("Content");
 						for (int i = 0; i < ContentOrderState.size(); i++) {

+ 22 - 18
ibms-data-sdk/src/main/java/com/persagy/ibms/data/sdk/websocket/AlarmWebSocketClient.java

@@ -29,29 +29,33 @@ public class AlarmWebSocketClient extends WebSocketClient {
 	@Override
 	public void onOpen(ServerHandshake arg0) {
 		log.warn("onOpen: " + serverUri.toString());
-		Runnable runnable = new Runnable() {
-			@Override
-			public void run() {
-				try {
-					log.warn("onOpen refresh begin");
-					JSONObject AlarmJob = new JSONObject();
-					AlarmJob.put("type", "refresh");
-					RepositoryContainer.RepositoryProject.alarmBuffer.offer(AlarmJob, 16384);
-					JSONArray Content;
+		try {
+			Runnable runnable = new Runnable() {
+				@Override
+				public void run() {
 					try {
-						Content = RWDAlarmUtil.refresh();
+						log.warn("onOpen refresh begin");
+						JSONObject AlarmJob = new JSONObject();
+						AlarmJob.put("type", "refresh");
+						RepositoryContainer.RepositoryProject.alarmBuffer.offer(AlarmJob, 16384);
+						JSONArray Content;
+						try {
+							Content = RWDAlarmUtil.refresh();
+						} catch (Exception e) {
+							log.error(e.getMessage(), e);
+							Content = new JSONArray();
+						}
+						AlarmJob.put("Content", Content);
+						log.warn("onOpen refresh finish alarm count: " + Content.size());
 					} catch (Exception e) {
 						log.error(e.getMessage(), e);
-						Content = new JSONArray();
 					}
-					AlarmJob.put("Content", Content);
-					log.warn("onOpen refresh finish alarm count: " + Content.size());
-				} catch (Exception e) {
-					log.error(e.getMessage(), e);
 				}
-			}
-		};
-		runnable.run();
+			};
+			RWDAlarmUtil.executor.execute(runnable);
+		} catch (Exception e) {
+			log.error(e.getMessage(), e);
+		}
 	}
 
 	@Override