Commit 5e97f62f47d0ad6fd9f2cdb3d8ef2ac690c09011
1 parent
bb33dcc2
问题处理;
Showing
4 changed files
with
56 additions
and
32 deletions
src/main/java/com/objecteye/common/GeneralContent.java
@@ -33,6 +33,8 @@ public class GeneralContent { | @@ -33,6 +33,8 @@ public class GeneralContent { | ||
33 | */ | 33 | */ |
34 | public final static Map<String, String> DOCKER_SH_OUT_MAP = new HashMap<>(); | 34 | public final static Map<String, String> DOCKER_SH_OUT_MAP = new HashMap<>(); |
35 | 35 | ||
36 | + public final static Map<String, String> DOCKER_CONFIG_PARAMS_MAP = new HashMap<>(); | ||
37 | + | ||
36 | static { | 38 | static { |
37 | MODULE_MAP.put("arp_cache", "/shell_files/arp_cache.sh"); | 39 | MODULE_MAP.put("arp_cache", "/shell_files/arp_cache.sh"); |
38 | MODULE_MAP.put("bandwidth", "/shell_files/bandwidth.sh"); | 40 | MODULE_MAP.put("bandwidth", "/shell_files/bandwidth.sh"); |
@@ -80,5 +82,19 @@ public class GeneralContent { | @@ -80,5 +82,19 @@ public class GeneralContent { | ||
80 | DOCKER_SH_OUT_MAP.put("9", "容器不存在"); | 82 | DOCKER_SH_OUT_MAP.put("9", "容器不存在"); |
81 | DOCKER_SH_OUT_MAP.put("10", "端口已经被占用"); | 83 | DOCKER_SH_OUT_MAP.put("10", "端口已经被占用"); |
82 | DOCKER_SH_OUT_MAP.put("11", "未知错误"); | 84 | DOCKER_SH_OUT_MAP.put("11", "未知错误"); |
85 | + | ||
86 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_car_win_detect_config", "车窗检测"); | ||
87 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_recg_config", "车型识别"); | ||
88 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_plate_det_recg_config", "车牌检测识别"); | ||
89 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_color_config", "车辆颜色识别"); | ||
90 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_pendant_det_config", "车辆属性识别"); | ||
91 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_illegal_config", "车违规行为检测"); | ||
92 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_feature_config", "车辆特征提取"); | ||
93 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_special_config", "特殊品类车型识别"); | ||
94 | + DOCKER_CONFIG_PARAMS_MAP.put("gpuId", "显卡号"); | ||
95 | + DOCKER_CONFIG_PARAMS_MAP.put("log", "日志"); | ||
96 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_image_quality_config", "车辆图像清晰度识别"); | ||
97 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_motor_tricycle_analysis_config", "摩托车是否载人/摩托车驾驶人是否戴头盔/农用车是否载人"); | ||
98 | + DOCKER_CONFIG_PARAMS_MAP.put("vehicle_stain_vp_config", "车牌是否遮挡"); | ||
83 | } | 99 | } |
84 | } | 100 | } |
src/main/java/com/objecteye/service/IBackGroundService.java
@@ -99,4 +99,9 @@ public interface IBackGroundService { | @@ -99,4 +99,9 @@ public interface IBackGroundService { | ||
99 | * @return 操作状态 | 99 | * @return 操作状态 |
100 | */ | 100 | */ |
101 | JSONObject serviceAction(Integer configId, String action); | 101 | JSONObject serviceAction(Integer configId, String action); |
102 | + | ||
103 | + /** | ||
104 | + * 每分钟更新一次所有服务的状态 | ||
105 | + */ | ||
106 | + void serviceStatusUpdater(); | ||
102 | } | 107 | } |
src/main/java/com/objecteye/service/impl/BackGroundServiceImpl.java
@@ -230,41 +230,29 @@ public class BackGroundServiceImpl implements IBackGroundService { | @@ -230,41 +230,29 @@ public class BackGroundServiceImpl implements IBackGroundService { | ||
230 | public JSONObject sdkController(Map<String, Object> requestMap) { | 230 | public JSONObject sdkController(Map<String, Object> requestMap) { |
231 | String configId = (String) requestMap.get("configId"); | 231 | String configId = (String) requestMap.get("configId"); |
232 | String uri = "/vehicle/loadConfig"; | 232 | String uri = "/vehicle/loadConfig"; |
233 | - String configItemName = "ip,port"; | 233 | + String configItemName = "http,port"; |
234 | List<SyServiceConfigItem> syServiceConfigItems = | 234 | List<SyServiceConfigItem> syServiceConfigItems = |
235 | syServiceConfigItemMapper.selectByExample(SyServiceConfigItemExample.newAndCreateCriteria() | 235 | syServiceConfigItemMapper.selectByExample(SyServiceConfigItemExample.newAndCreateCriteria() |
236 | .andConfigIdEqualTo(Integer.valueOf(configId)).andItemNameIn(Arrays.asList(configItemName.split(","))) | 236 | .andConfigIdEqualTo(Integer.valueOf(configId)).andItemNameIn(Arrays.asList(configItemName.split(","))) |
237 | .example()); | 237 | .example()); |
238 | - String ip = null; | 238 | + String http = null; |
239 | String port = null; | 239 | String port = null; |
240 | for (SyServiceConfigItem syServiceConfigItem : syServiceConfigItems) { | 240 | for (SyServiceConfigItem syServiceConfigItem : syServiceConfigItems) { |
241 | - if ("ip".equals(syServiceConfigItem.getItemName())) { | ||
242 | - ip = syServiceConfigItem.getItemValue(); | 241 | + if ("http".equals(syServiceConfigItem.getItemName())) { |
242 | + http = syServiceConfigItem.getItemValue(); | ||
243 | } else if ("port".equals(syServiceConfigItem.getItemName())) { | 243 | } else if ("port".equals(syServiceConfigItem.getItemName())) { |
244 | port = syServiceConfigItem.getItemValue(); | 244 | port = syServiceConfigItem.getItemValue(); |
245 | } | 245 | } |
246 | } | 246 | } |
247 | JSONObject resultObj = new JSONObject(); | 247 | JSONObject resultObj = new JSONObject(); |
248 | - if (ip == null || port == null) { | 248 | + if (http == null || port == null) { |
249 | resultObj.put("error", "服务配置缺少ip或端口信息"); | 249 | resultObj.put("error", "服务配置缺少ip或端口信息"); |
250 | return resultObj; | 250 | return resultObj; |
251 | } | 251 | } |
252 | - String params = "vehicle_car_win_detect_config," + | ||
253 | - "vehicle_recg_config," + | ||
254 | - "vehicle_plate_det_recg_config," + | ||
255 | - "vehicle_color_config," + | ||
256 | - "vehicle_pendant_det_config," + | ||
257 | - "vehicle_illegal_config," + | ||
258 | - "vehicle_feature_config," + | ||
259 | - "vehicle_special_config," + | ||
260 | - "gpuId," + | ||
261 | - "log," + | ||
262 | - "vehicle_image_quality_config," + | ||
263 | - "vehicle_motor_tricycle_analysis_config,port," + | ||
264 | - "vehicle_stain_vp_config"; | 252 | + |
265 | List<String> errorList = new ArrayList<>(); | 253 | List<String> errorList = new ArrayList<>(); |
266 | Map<String, String> restRequestMap = new HashMap<>(); | 254 | Map<String, String> restRequestMap = new HashMap<>(); |
267 | - for (String param : params.split(",")) { | 255 | + for (String param : GeneralContent.DOCKER_CONFIG_PARAMS_MAP.keySet()) { |
268 | if (!requestMap.containsKey(param)) { | 256 | if (!requestMap.containsKey(param)) { |
269 | errorList.add(param + "参数不能为空"); | 257 | errorList.add(param + "参数不能为空"); |
270 | } else { | 258 | } else { |
@@ -276,7 +264,7 @@ public class BackGroundServiceImpl implements IBackGroundService { | @@ -276,7 +264,7 @@ public class BackGroundServiceImpl implements IBackGroundService { | ||
276 | return resultObj; | 264 | return resultObj; |
277 | } | 265 | } |
278 | 266 | ||
279 | - ResponseEntity<String> responseEntity = restTemplate.postForEntity(ip + ":" + port + uri, restRequestMap, String.class); | 267 | + ResponseEntity<String> responseEntity = restTemplate.postForEntity(http + ":" + port + uri, restRequestMap, String.class); |
280 | resultObj = JSON.parseObject(responseEntity.getBody()); | 268 | resultObj = JSON.parseObject(responseEntity.getBody()); |
281 | return resultObj; | 269 | return resultObj; |
282 | } | 270 | } |
@@ -369,7 +357,7 @@ public class BackGroundServiceImpl implements IBackGroundService { | @@ -369,7 +357,7 @@ public class BackGroundServiceImpl implements IBackGroundService { | ||
369 | @Override | 357 | @Override |
370 | public PageResult serviceQuery(Integer currentPage, Integer pageVolume) { | 358 | public PageResult serviceQuery(Integer currentPage, Integer pageVolume) { |
371 | List<SyServiceConfig> syServiceConfigs = syServiceConfigMapper.selectByExample(SyServiceConfigExample.newAndCreateCriteria() | 359 | List<SyServiceConfig> syServiceConfigs = syServiceConfigMapper.selectByExample(SyServiceConfigExample.newAndCreateCriteria() |
372 | - .example().page(currentPage, currentPage)); | 360 | + .example().page(currentPage, pageVolume)); |
373 | long total = syServiceConfigMapper.countByExample(SyServiceConfigExample.newAndCreateCriteria().example()); | 361 | long total = syServiceConfigMapper.countByExample(SyServiceConfigExample.newAndCreateCriteria().example()); |
374 | if (total == 0) { | 362 | if (total == 0) { |
375 | return new PageResult<>(0, new ArrayList<>()); | 363 | return new PageResult<>(0, new ArrayList<>()); |
@@ -390,7 +378,7 @@ public class BackGroundServiceImpl implements IBackGroundService { | @@ -390,7 +378,7 @@ public class BackGroundServiceImpl implements IBackGroundService { | ||
390 | vSyServiceMainTable.setUpdateTime(DateUtil.format(new Date(syServiceConfig.getUpdateTime()), "yyyy-MM-dd HH:mm:ss")); | 378 | vSyServiceMainTable.setUpdateTime(DateUtil.format(new Date(syServiceConfig.getUpdateTime()), "yyyy-MM-dd HH:mm:ss")); |
391 | vSyServiceMainTable.setConfigId(syServiceConfig.getId()); | 379 | vSyServiceMainTable.setConfigId(syServiceConfig.getId()); |
392 | 380 | ||
393 | - String ip = null; | 381 | + String http = null; |
394 | String port = null; | 382 | String port = null; |
395 | List<String> otherParams = new ArrayList<>(); | 383 | List<String> otherParams = new ArrayList<>(); |
396 | for (SyServiceConfigItem syServiceConfigItem : configItems) { | 384 | for (SyServiceConfigItem syServiceConfigItem : configItems) { |
@@ -400,18 +388,19 @@ public class BackGroundServiceImpl implements IBackGroundService { | @@ -400,18 +388,19 @@ public class BackGroundServiceImpl implements IBackGroundService { | ||
400 | vSyServiceMainTable.setGpuId(itemValue); | 388 | vSyServiceMainTable.setGpuId(itemValue); |
401 | } else if ("port".equals(itemName)) { | 389 | } else if ("port".equals(itemName)) { |
402 | port = itemValue; | 390 | port = itemValue; |
403 | - } else if ("ip".equals(itemName)) { | ||
404 | - ip = itemValue; | 391 | + } else if ("http".equals(itemName)) { |
392 | + http = itemValue; | ||
405 | } else { | 393 | } else { |
406 | - otherParams.add(itemName); | 394 | + otherParams.add(GeneralContent.DOCKER_CONFIG_PARAMS_MAP.get(itemName)); |
407 | } | 395 | } |
408 | } | 396 | } |
409 | - vSyServiceMainTable.setPort(ip + ":" + port); | 397 | + vSyServiceMainTable.setPort(http + ":" + port); |
410 | vSyServiceMainTable.setItems(String.join(",", otherParams)); | 398 | vSyServiceMainTable.setItems(String.join(",", otherParams)); |
411 | - vSyServiceMainTable.setStatus((String) redisTemplate.opsForHash().get(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, syServiceConfig.getId())); | 399 | + String status = (String) redisTemplate.opsForHash().get(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, syServiceConfig.getId()); |
400 | + vSyServiceMainTable.setStatus(status == null ? "0" : status); | ||
412 | resultList.add(vSyServiceMainTable); | 401 | resultList.add(vSyServiceMainTable); |
413 | } | 402 | } |
414 | - return new PageResult<>((int) Math.ceil((double) total / pageVolume), resultList); | 403 | + return new PageResult<>(total, resultList); |
415 | } | 404 | } |
416 | 405 | ||
417 | /** | 406 | /** |
@@ -435,6 +424,21 @@ public class BackGroundServiceImpl implements IBackGroundService { | @@ -435,6 +424,21 @@ public class BackGroundServiceImpl implements IBackGroundService { | ||
435 | } | 424 | } |
436 | 425 | ||
437 | /** | 426 | /** |
427 | + * 每分钟更新一次所有服务的状态 | ||
428 | + */ | ||
429 | + @Override | ||
430 | + @Scheduled(fixedRate = 60 * 1000) | ||
431 | + public void serviceStatusUpdater() { | ||
432 | + List<SyServiceConfig> syServiceConfigs = syServiceConfigMapper.selectByExample(SyServiceConfigExample.newAndCreateCriteria().example()); | ||
433 | + for (SyServiceConfig syServiceConfig : syServiceConfigs) { | ||
434 | + if (syServiceConfig == null) { | ||
435 | + continue; | ||
436 | + } | ||
437 | + serviceAction(syServiceConfig.getId(), "status"); | ||
438 | + } | ||
439 | + } | ||
440 | + | ||
441 | + /** | ||
438 | * sysv.sh [stop|restart|status|load] {[containerId]} | 442 | * sysv.sh [stop|restart|status|load] {[containerId]} |
439 | * | 443 | * |
440 | * @param configId 服务配置主键 | 444 | * @param configId 服务配置主键 |
@@ -478,9 +482,9 @@ public class BackGroundServiceImpl implements IBackGroundService { | @@ -478,9 +482,9 @@ public class BackGroundServiceImpl implements IBackGroundService { | ||
478 | redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "1"); | 482 | redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "1"); |
479 | } else if ("status".equals(action)) { | 483 | } else if ("status".equals(action)) { |
480 | if ("0".equals(resultCode)) { | 484 | if ("0".equals(resultCode)) { |
481 | - redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "0"); | ||
482 | - } else { | ||
483 | redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "1"); | 485 | redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "1"); |
486 | + } else { | ||
487 | + redisTemplate.opsForHash().put(GeneralContent.REDIS_SERVICE_DOCKER_STATUS, configId, "0"); | ||
484 | } | 488 | } |
485 | } | 489 | } |
486 | if ("0".equals(resultCode)) { | 490 | if ("0".equals(resultCode)) { |
@@ -488,7 +492,6 @@ public class BackGroundServiceImpl implements IBackGroundService { | @@ -488,7 +492,6 @@ public class BackGroundServiceImpl implements IBackGroundService { | ||
488 | } else { | 492 | } else { |
489 | resultObj.put("error", resultMsg); | 493 | resultObj.put("error", resultMsg); |
490 | } | 494 | } |
491 | - | ||
492 | } | 495 | } |
493 | } | 496 | } |
494 | return resultObj; | 497 | return resultObj; |
src/main/java/com/objecteye/service/impl/UserServiceImpl.java
@@ -78,7 +78,7 @@ public class UserServiceImpl implements IUserService { | @@ -78,7 +78,7 @@ public class UserServiceImpl implements IUserService { | ||
78 | SyUserExample baseExample = SyUserExample.newAndCreateCriteria().andUsernameEqualTo(username).example(); | 78 | SyUserExample baseExample = SyUserExample.newAndCreateCriteria().andUsernameEqualTo(username).example(); |
79 | List<SyUser> syUsers = syUserMapper.selectByExample(baseExample.page(currentPage, currentPage)); | 79 | List<SyUser> syUsers = syUserMapper.selectByExample(baseExample.page(currentPage, currentPage)); |
80 | long total = syUserMapper.countByExample(baseExample); | 80 | long total = syUserMapper.countByExample(baseExample); |
81 | - return new PageResult<>((long) Math.ceil((double) total / pageVolume), syUsers); | 81 | + return new PageResult<>(total, syUsers); |
82 | } | 82 | } |
83 | 83 | ||
84 | /** | 84 | /** |