Levi преди 3 години
родител
ревизия
3aa33ef555

+ 14 - 6
src/main/java/com/ebei/screen/common/task/ScreenTask.java

@@ -10,6 +10,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
 /**
  * 大屏项目定时任务
  *
@@ -29,6 +33,8 @@ public class ScreenTask {
     @Autowired
     private ParkSystemService parkSystemService;
 
+    private final Lock lock = new ReentrantLock();
+
     /**
      * 每小时执行一次数据拉取
      */
@@ -37,7 +43,7 @@ public class ScreenTask {
         try {
             log.info("定时开始执行 开始时间:{}", DateUtil.now());
             ebaSystemService.initData();
-            energyPlatformService.initData();
+            // energyPlatformService.initData();
             ParkUtils.getLoginToken();
             log.info("定时执行结束 结束时间:{}", DateUtil.now());
         } catch (Exception e) {
@@ -48,13 +54,15 @@ public class ScreenTask {
     /**
      * 每3秒处理6条数据
      */
-    @Scheduled(cron = "*/3 * * * * ?")
+    @Scheduled(cron = "*/5 * * * * ?")
     public void exec() {
         try {
-            log.info("开始处理数据 开始时间:{}", DateUtil.now());
-            // 获取10条进行处理
-            boolean result = parkSystemService.taskExec(6);
-            log.info("数据处理结束 结束时间:{} 处理结果:{}", DateUtil.now(), result);
+            if (lock.tryLock(2, TimeUnit.SECONDS)) {
+                log.info("开始处理数据 开始时间:{}", DateUtil.now());
+                // 获取10条进行处理
+                boolean result = parkSystemService.taskExec(9);
+                log.info("数据处理结束 结束时间:{} 处理结果:{}", DateUtil.now(), result);
+            }
         } catch (Exception e) {
             log.error("定时任务执行出现错误:", e);
         }

+ 1 - 1
src/main/java/com/ebei/screen/controller/eba/EbaSystemController.java

@@ -26,7 +26,7 @@ public class EbaSystemController {
     private EbaSystemService ebaSystemService;
 
     // @ApiOperation("实时数据回调接口")
-    @PostMapping(value = "/realTimeCallback", produces = "application/json; charset=utf-8")
+    // @PostMapping(value = "/realTimeCallback", produces = "application/json; charset=utf-8")
     public Integer realTimeCallback(@RequestBody Map params) {
         return ebaSystemService.realTimeCallback(params);
     }

+ 3 - 3
src/main/java/com/ebei/screen/controller/energy/EnergyPlatformController.java

@@ -38,19 +38,19 @@ public class EnergyPlatformController {
 
 
     @ApiOperation("获取能耗大屏数据监控推送")
-    @PostMapping("/dataMonitoringCallback")
+    // @PostMapping("/dataMonitoringCallback")
     public ResponseBean dataMonitoringCallback(@RequestBody List<Map> params) {
         return energyPlatformService.dataMonitoringCallback(params);
     }
 
     @ApiOperation("获取能耗大屏报警记录推送")
-    @PostMapping("/alarmRecordCallback")
+    // @PostMapping("/alarmRecordCallback")
     public ResponseBean alarmRecordCallback(@RequestBody List<Map> params) {
         return energyPlatformService.alarmRecordCallback(params);
     }
 
     @ApiOperation("获取能耗大屏设备状态推送")
-    @PostMapping("/deviceStateCallback")
+    // @PostMapping("/deviceStateCallback")
     public ResponseBean deviceStateCallback(@RequestBody List<Map> params) {
         return energyPlatformService.deviceStateCallback(params);
     }

+ 1 - 1
src/main/java/com/ebei/screen/service/impl/ParkSystemServiceImpl.java

@@ -100,7 +100,7 @@ public class ParkSystemServiceImpl implements ParkSystemService {
      * @return
      */
     @Override
-    public synchronized boolean taskExec(int size) throws InterruptedException {
+    public boolean taskExec(int size) throws InterruptedException {
         boolean result = false;
         JSONObject obj = mongoTemplate.findById("idDict", JSONObject.class, "parkQueue");
         JSONArray data = obj != null ? obj.getJSONArray("data") : new JSONArray();