Commit 567fa3ece313d0e06c3c15e639371eedeaa33208

Authored by 潘钊
1 parent df403c1b

update...

src/main/java/com/bsth/Application.java
@@ -11,7 +11,7 @@ import java.util.concurrent.ScheduledExecutorService; @@ -11,7 +11,7 @@ import java.util.concurrent.ScheduledExecutorService;
11 @SpringBootApplication 11 @SpringBootApplication
12 public class Application extends SpringBootServletInitializer { 12 public class Application extends SpringBootServletInitializer {
13 13
14 - public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(8); 14 + public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(9);
15 15
16 @Override 16 @Override
17 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 17 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
src/main/java/com/bsth/StartCommand.java
1 package com.bsth; 1 package com.bsth;
2 2
3 3
  4 +import com.bsth.server_rs.schedule.real.thread.SchInOutDataRefreshThread;
4 import com.bsth.server_rs.thread.RfidCardInfoPersistenceThread; 5 import com.bsth.server_rs.thread.RfidCardInfoPersistenceThread;
5 import com.bsth.service.Line2SystemService; 6 import com.bsth.service.Line2SystemService;
6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +26,9 @@ public class StartCommand implements CommandLineRunner{ @@ -25,6 +26,9 @@ public class StartCommand implements CommandLineRunner{
25 @Autowired 26 @Autowired
26 RfidCardInfoPersistenceThread rfidCardInfoPersistenceThread; 27 RfidCardInfoPersistenceThread rfidCardInfoPersistenceThread;
27 28
  29 + @Autowired
  30 + SchInOutDataRefreshThread schInOutDataRefreshThread;
  31 +
28 @Override 32 @Override
29 public void run(String... arg0){ 33 public void run(String... arg0){
30 34
@@ -37,6 +41,9 @@ public class StartCommand implements CommandLineRunner{ @@ -37,6 +41,9 @@ public class StartCommand implements CommandLineRunner{
37 sexec.scheduleWithFixedDelay(rfidCardInfoPersistenceThread, 120, 60 * 10, TimeUnit.SECONDS); 41 sexec.scheduleWithFixedDelay(rfidCardInfoPersistenceThread, 120, 60 * 10, TimeUnit.SECONDS);
38 //OldWSClient.returnCCInfo(); 42 //OldWSClient.returnCCInfo();
39 //OldWSClient.getCurrentDayPlan(); 43 //OldWSClient.getCurrentDayPlan();
  44 +
  45 + //定时从调度系统刷新进出场数据
  46 + sexec.scheduleWithFixedDelay(schInOutDataRefreshThread, 40, 20, TimeUnit.SECONDS);
40 } catch (Exception e) { 47 } catch (Exception e) {
41 e.printStackTrace(); 48 e.printStackTrace();
42 } 49 }
src/main/java/com/bsth/server_rs/schedule/real/SchRealInfoBuffer.java 0 → 100644
  1 +package com.bsth.server_rs.schedule.real;
  2 +
  3 +import com.bsth.entity.ScheduleRealInfo;
  4 +import org.springframework.stereotype.Component;
  5 +
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * 实际排班缓存
  10 + * Created by panzhao on 2017/9/27.
  11 + */
  12 +@Component
  13 +public class SchRealInfoBuffer {
  14 +
  15 + /**
  16 + * 进出场班次数据,定时从调度系统获取。 对各场站输出
  17 + */
  18 + public static List<ScheduleRealInfo> inOutList;
  19 +
  20 +}
src/main/java/com/bsth/server_rs/schedule/real/ScheduleRealService.java
@@ -46,6 +46,23 @@ public class ScheduleRealService { @@ -46,6 +46,23 @@ public class ScheduleRealService {
46 return all; 46 return all;
47 } 47 }
48 48
  49 + /**
  50 + * 获取当天指定停车场的进出场排班数据(潘钊场站VIP特供版 -高实时)
  51 + *
  52 + * @return
  53 + */
  54 + @GET
  55 + @Path("/in_out/{code}")
  56 + public List<ScheduleInOut> findInOut_real(@PathParam("code") String code) {
  57 + Set<String> lineArray = BasicData.lineDateMap.keySet();
  58 +
  59 + List<ScheduleInOut> all = new ArrayList<>();
  60 + for (String lineCode : lineArray) {
  61 + all.addAll(ScheduleInOut.getMultiInstance(redisService.read(BasicData.lineDateMap.get(lineCode), lineCode), code));
  62 + }
  63 + return all;
  64 + }
  65 +
49 @GET 66 @GET
50 @Path("/sch_jk/{company}/{rq}") 67 @Path("/sch_jk/{company}/{rq}")
51 public List<ScheduleRealInfoDTO_JK> find_JK(@PathParam("company") String company, @PathParam("rq") String rq) { 68 public List<ScheduleRealInfoDTO_JK> find_JK(@PathParam("company") String company, @PathParam("rq") String rq) {
src/main/java/com/bsth/server_rs/schedule/real/thread/SchInOutDataRefreshThread.java 0 → 100644
  1 +package com.bsth.server_rs.schedule.real.thread;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.bsth.entity.ScheduleRealInfo;
  5 +import com.bsth.server_rs.schedule.real.SchRealInfoBuffer;
  6 +import com.bsth.util.ConfigUtil;
  7 +import com.bsth.util.HttpClientUtils;
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import java.util.List;
  13 +
  14 +/**
  15 + * 从调度系统获取进出场数据线程
  16 + * Created by panzhao on 2017/9/27.
  17 + */
  18 +@Component
  19 +public class SchInOutDataRefreshThread extends Thread {
  20 +
  21 + static String url;
  22 + static String secretKey;
  23 +
  24 + Logger logger = LoggerFactory.getLogger(this.getClass());
  25 +
  26 + static {
  27 + secretKey = ConfigUtil.get("http.control.secret.key");
  28 + url = ConfigUtil.get("http.control.service_data_url") + "/findCurrInAndOut?secretKey=" + secretKey;
  29 + }
  30 +
  31 + @Override
  32 + public void run() {
  33 + try {
  34 + StringBuilder sb = HttpClientUtils.get(url);
  35 + List<ScheduleRealInfo> list = JSON.parseArray(sb.toString(), ScheduleRealInfo.class);
  36 +
  37 + if(null != list && list.size() > 0){
  38 + SchRealInfoBuffer.inOutList = list;
  39 + logger.info("从调度系统刷新进出场班次: " + list.size());
  40 + }
  41 + } catch (Exception e) {
  42 + logger.error("", e);
  43 + }
  44 + }
  45 +}
src/main/java/com/bsth/util/HttpClientUtils.java 0 → 100644
  1 +package com.bsth.util;
  2 +
  3 +import org.apache.http.HttpEntity;
  4 +import org.apache.http.client.config.RequestConfig;
  5 +import org.apache.http.client.methods.CloseableHttpResponse;
  6 +import org.apache.http.client.methods.HttpGet;
  7 +import org.apache.http.client.methods.HttpPost;
  8 +import org.apache.http.entity.StringEntity;
  9 +import org.apache.http.impl.client.CloseableHttpClient;
  10 +import org.apache.http.impl.client.HttpClients;
  11 +import org.slf4j.Logger;
  12 +import org.slf4j.LoggerFactory;
  13 +
  14 +import java.io.BufferedReader;
  15 +import java.io.IOException;
  16 +import java.io.InputStreamReader;
  17 +
  18 +/**
  19 + * Created by panzhao on 2017/8/2.
  20 + */
  21 +public class HttpClientUtils {
  22 +
  23 + static Logger logger = LoggerFactory.getLogger(HttpClientUtils.class);
  24 +
  25 + public static StringBuilder get(String url) throws Exception {
  26 + CloseableHttpClient httpClient = null;
  27 + CloseableHttpResponse response = null;
  28 + StringBuilder stringBuffer = null;
  29 + try {
  30 + httpClient = HttpClients.createDefault();
  31 + HttpGet get = new HttpGet(url);
  32 + //超时时间
  33 + RequestConfig requestConfig = RequestConfig.custom()
  34 + .setConnectTimeout(2500).setConnectionRequestTimeout(2000)
  35 + .setSocketTimeout(2500).build();
  36 + get.setConfig(requestConfig);
  37 + get.addHeader("Content-Encoding", "gzip");
  38 +
  39 + response = httpClient.execute(get);
  40 + stringBuffer = getResult(response.getEntity());
  41 + } catch (Exception e) {
  42 + logger.error("", e);
  43 + } finally {
  44 + if (null != httpClient)
  45 + httpClient.close();
  46 + if (null != response)
  47 + response.close();
  48 + }
  49 + return stringBuffer;
  50 + }
  51 +
  52 + /**
  53 + * raw post data
  54 + * @param url
  55 + * @param data
  56 + * @return
  57 + */
  58 + public static StringBuilder post(String url, String data) throws Exception {
  59 + CloseableHttpClient httpClient = null;
  60 + CloseableHttpResponse response = null;
  61 + StringBuilder stringBuffer = null;
  62 + try {
  63 + httpClient = HttpClients.createDefault();
  64 + HttpPost post = new HttpPost(url);
  65 +
  66 + post.setHeader("Accept", "application/json");
  67 + post.setHeader("Content-Type", "application/json");
  68 + //超时时间
  69 + RequestConfig requestConfig = RequestConfig.custom()
  70 + .setConnectTimeout(2500).setConnectionRequestTimeout(2000)
  71 + .setSocketTimeout(2500).build();
  72 + post.setConfig(requestConfig);
  73 + post.setEntity((new StringEntity(data, "UTF-8")));
  74 +
  75 + response = httpClient.execute(post);
  76 + stringBuffer = getResult(response.getEntity());
  77 + } catch (Exception e) {
  78 + logger.error("", e);
  79 + } finally {
  80 + if (null != httpClient)
  81 + httpClient.close();
  82 + if (null != response)
  83 + response.close();
  84 + }
  85 + return stringBuffer;
  86 + }
  87 +
  88 + private static StringBuilder getResult(HttpEntity entity) throws IOException {
  89 + StringBuilder stringBuffer = null;
  90 + if (null != entity) {
  91 + BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
  92 + stringBuffer = new StringBuilder();
  93 + String str = "";
  94 + while ((str = br.readLine()) != null)
  95 + stringBuffer.append(str);
  96 + }
  97 + return stringBuffer;
  98 + }
  99 +}