Browse Source

定时任务修改

master
lijiuwei 8 months ago
parent
commit
3d99f4db0c
6 changed files with 67 additions and 114 deletions
  1. +57
    -13
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  2. +2
    -1
      inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java
  3. +0
    -3
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java
  4. +0
    -93
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/IspAlgorithmRequestService.java
  5. +4
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  6. +4
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java

+ 57
- 13
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -1536,17 +1536,6 @@ public class JobMainTask {
}
}
@SuppressWarnings({"unused"})
public void makeEveryDayTask() {
log.info("***************************** JobTaskTimer makeEveryDayTask *************************************");
try {
taskExecClient.makeCurrentDayTask();
} catch (Exception e) {
log.info("[JOB] makeCurrentDayTask: {}", e.getMessage());
}
}
// private String getTaskPatrolId(final PatrolTask patrolTask) {
// String time = DateUtils.format(DateUtils.yyyyMMddHHmmss, patrolTask.getFixedStartTime());
// return patrolTask.getDevNo() + "_" + patrolTask.getTaskCode() + "_" + time;
@ -1559,7 +1548,7 @@ public class JobMainTask {
@SuppressWarnings({"unused"})
public void execEveryDayTask(List<PatrolTask> patrolTaskList) {
log.info("***************************** JobTaskTimer execEveryDayTask *************************************");
log.info("***************************** JobTaskTimer execEveryDayTask with parameters *************************************");
// setRedisRecordCount(patrolTaskList.size());
// for (PatrolTask patrolTask : patrolTaskList) {
@ -1617,7 +1606,7 @@ public class JobMainTask {
@SuppressWarnings({"unused"})
public void execRepeatDayTask(List<PatrolTask> patrolTaskList) {
log.info("***************************** JobTaskTimer execRepeatDayTask *************************************");
log.info("***************************** JobTaskTimer execRepeatDayTask with parameters *************************************");
// for (PatrolTask patrolTask : patrolTaskList) {
// final String taskPatrolId = getTaskPatrolId(patrolTask);
@ -1645,4 +1634,59 @@ public class JobMainTask {
// }
// }
}
private boolean isTaskSlotEmpty(String taskCode) {
String taskCurrentCode = redisService.getCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode);
Integer redisRecCnt = redisService.getCacheObjectOfTask(RedisConst.TASK_RECORD_CNT, taskCode);
log.info(Color.YELLOW + "[JOB] TASK_CURRENT_CODE: {}, TASK_RECORD_CNT: {}" + Color.END, taskCurrentCode, redisRecCnt);
return StringUtils.isEmpty(taskCurrentCode) ||
!StringUtils.isEmpty(taskCurrentCode) && (redisRecCnt == null || redisRecCnt == 0);
}
private synchronized void extractRedisTask(String redisKey, String taskCode) {
List<PatrolTask> patrolTaskList = JSON.parseArray(redisService.getCacheObject(redisKey), PatrolTask.class);
if (patrolTaskList != null && !patrolTaskList.isEmpty()) {
log.info(Color.YELLOW + "[JOB] ADD NEW TASK: {}, TASK LIST SIZE: {}" + Color.END, redisKey, patrolTaskList.size());
redisService.setCacheObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskCode, redisKey);
execEveryDayTask(patrolTaskList);
}
}
@SuppressWarnings({"unused"})
public void execEveryDayTask() {
log.info("***************************** JobTaskTimer execEveryDayTask *************************************");
Collection<String> redisKeys = redisService.keys(RedisConst.TASK_CODE_EX);
for (String redisKey : redisKeys) {
try {
String[] keywords = StringUtils.split(redisKey, StringUtils.AT);
if (keywords.length == 3) {
String taskCode = keywords[1];
String fixedStartTime = keywords[2];
if (isTaskSlotEmpty(taskCode)) {
long currentDays = TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis());
long fixedDays = TimeUnit.MILLISECONDS.toDays(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, fixedStartTime).getTime());
long currentMinutes = TimeUnit.MILLISECONDS.toMinutes(System.currentTimeMillis());
long fixedStartMinutes = TimeUnit.MILLISECONDS.toMinutes(DateUtils.parse(DateUtils.yyyyMMddHHmmss2, fixedStartTime).getTime());
if (currentDays == fixedDays && currentMinutes >= fixedStartMinutes) {
extractRedisTask(redisKey, taskCode);
}
}
}
} catch (Exception e) {
log.error("error", e);
}
}
}
@SuppressWarnings({"unused"})
public void makeEveryDayTask() {
log.info("***************************** JobTaskTimer makeEveryDayTask *************************************");
try {
taskExecClient.makeCurrentDayTask();
} catch (Exception e) {
log.error("error", e);
}
}
}

+ 2
- 1
inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java View File

@ -48,7 +48,8 @@ public class PatrolEqpbookChannelTask {
//获取库里面的eqpbookchannel
List<EqpBookChannel> eqpBookChannels = patrolDeviceStateMapper.selectEqpBookChannel();
result = HttpClientUtils.get(url, StringUtils.EMPTY);
logger.info("同步巡检设备在线状态:{}", result);
logger.info("同步巡检设备在线状态");
// logger.info("同步巡检设备在线状态:{}", result);
JSONObject jsonObject = JSONObject.parseObject(result);
if (null != jsonObject) {
JSONObject cameraBriefInfos = jsonObject.getJSONObject("cameraBriefInfos");


+ 0
- 3
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java View File

@ -43,9 +43,6 @@ public class AnalysisServiceImpl implements IAnalysisService {
@Resource
private RedisService redisService;
@Resource
private IspAlgorithmRequestService ispAlgorithmRequestService;
@Resource
private AnalyseRemoteService analyseRemoteService;


+ 0
- 93
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/IspAlgorithmRequestService.java View File

@ -1,93 +0,0 @@
package com.inspect.analysis.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.inspect.analysis.constant.AnalyseConstants;
import com.inspect.analysis.domain.AnalyseLog;
import com.inspect.analysis.service.IAnalysisLogService;
import com.inspect.base.core.utils.HttpClientUtils;
import com.inspect.base.core.utils.StringUtils;
import com.inspect.base.redis.service.RedisService;
import com.inspect.partrolresult.domain.AnalyseReqItem;
import com.inspect.partrolresult.domain.AnalyseRequest;
import com.inspect.task.service.IPatrolTaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@Component
public class IspAlgorithmRequestService {
private final Logger log = LoggerFactory.getLogger(this.getClass());
@Value("${server.port}")
private String port;
@Resource
private RedisService redisService;
@Resource
private IAnalysisLogService analysisLogService;
@Resource
private IPatrolTaskService patrolTaskService;
public void sendRequest(AnalyseRequest analyseReq, boolean isFilter) {
String requestId = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
String taskPatrolId = analyseReq.getTaskPatrolId();
analyseReq.setRequestId(requestId);
String taskSetKey = AnalyseConstants.ANALYSE_TASK_REQUEST.concat(taskPatrolId);
String requestSetKey = AnalyseConstants.ANALYSE_REQUEST_ALG.concat(requestId);
redisService.setCacheObject(AnalyseConstants.ANALYSE_REQUEST_ID.concat(requestId), taskPatrolId, 20L, TimeUnit.MINUTES);
redisService.redisTemplate.opsForSet().add(taskSetKey, requestId);
redisService.expire(taskSetKey, 20L, TimeUnit.MINUTES);
String analyseFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_FILTER);
String filter = "0";
String requestUrl;
if ("1".equals(analyseFilter) && isFilter) {
final String analyzeFilterRequestIdRedisKey = AnalyseConstants.ANALYSE_FILTER_REQUEST.concat(requestId);
log.info("[ALG] sendRequest analyseFilterRequestIdRedisKey: {}, analyseReq: {}", analyzeFilterRequestIdRedisKey, analyseReq);
redisService.setCacheObject(analyzeFilterRequestIdRedisKey, analyseReq.clone(), 1L, TimeUnit.HOURS);
AnalyseReqItem analyseReqItem = analyseReq.getObjectList().get(0);
analyseReqItem.setTypeList(new String[]{"tx_pb"});
analyseReq.setObjectList(Collections.singletonList(analyseReqItem));
filter = "1";
requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_FILTER_URL);
} else {
analyseReq.getObjectList().forEach((item) -> {
for (String type : item.getTypeList()) {
redisService.redisTemplate.opsForSet().add(requestSetKey, item.toResultValue(type));
}
});
requestUrl = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSIS_BIG_URL);
}
analysisLogService.log(new AnalyseLog(analyseReq.toString(), "0", taskPatrolId, filter, requestId));
try {
log.info("[ANALYSE REMOTE REQ] REMOTE_URL={}\n REMOTE_PARAMS={}", requestUrl, analyseReq);
String result = HttpClientUtils.sendPostAgain(requestUrl.concat("/picAnalyse"), analyseReq.toString());
final String resultCode = JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE);
log.info("[ANALYSE REMOTE REQ] RESULT_CODE={}\n RESULT={}", resultCode, result);
if (!"200".equals(resultCode)) {
log.error("[ANALYSE REMOTE REQ] BAD RESULT={}", result);
}
} catch (Exception e) {
log.error("[ANALYSE REMOTE REQ] REMOTE ISP ALGORITHM SERVER EXCEPTION: {}", e.getMessage());
HttpClientUtils.sendPostAgain("http://localhost:" + this.port + "/picAnalyseRetNotify", analyseReq.toErrorResultStr());
}
}
public void sendRequest(AnalyseRequest analyseReq) {
this.sendRequest(analyseReq, Boolean.FALSE);
}
public static void main(String[] args) {
String result = AnalyseConstants.ANALYSE_REQUEST_ID.concat("1234");
System.out.println(result);
}
}

+ 4
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java View File

@ -805,7 +805,7 @@ public class PatrolResultController extends BaseController {
filePanpath = judgeMap.get("dis_ref_picture_path");
}
analyseReqItem.setImageNormalUrlPath(filePanpath);
analyseReqItem.setImageNormalUrlPath(filePanpath);//总是为空
List<AlgInfo> judgeList = algInfoList.stream().filter(
(item) -> item.getAlgName().contains("判别")
).collect(Collectors.toList());
@ -853,7 +853,7 @@ public class PatrolResultController extends BaseController {
}
// 古老的红外逻辑处理
logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());
logger.info("callRemoteAlgorithm infraredList.isEmpty(): {}", infraredList.isEmpty());//永远为true
if (!infraredList.isEmpty() && "true".equals(pictureFrame)) {
String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
redisService.setCacheObject(RedisConst.REQUEST_UUID + uuid, patrolResultList.get(0).getTaskPatrolledId(), 1L, TimeUnit.DAYS);
@ -1326,6 +1326,7 @@ public class PatrolResultController extends BaseController {
patrolResultParam.setDataType(datetype);
List<PatrolResult> results = patrolResultService.selectPatrolResultList(patrolResultParam);
if (!results.isEmpty()) {
//patrol_result记录已存在则更新
PatrolResult patrolResult2 = results.get(0);
if (StringUtils.isNotEmpty(patrolResult.getFilePath())) {
patrolResult2.setFilePath(patrolResult.getFilePath());
@ -1387,6 +1388,7 @@ public class PatrolResultController extends BaseController {
resultList.add(patrolResult2);
// }
} else {
//patrol_result记录不存在则新增
patrolResult.setMainId(mainID + "");
Map<String, String> stringStringMap = patrolResultService.selectThresholdByPointId(patrolResult.getDeviceId());
if (stringStringMap != null && StringUtils.isNotEmpty(stringStringMap.get("alarm_threshold"))) {


+ 4
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java View File

@ -35,20 +35,22 @@ public class AnalyseRemoteService {
@Resource
private IPatrolTaskService patrolTaskService;
//qinyl
//qinyl 只取第一个,analyseReq.getObjectList().get(0)
public void sendRequest(AnalyseRequest analyseReq, String[] typeList, boolean isFilter) {
String requestId = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY);
String taskPatrolId = analyseReq.getTaskPatrolId();
redisService.setCacheObject(RedisConst.REQUEST_UUID + requestId, taskPatrolId, 1L, TimeUnit.DAYS);
log.info("[CALL REMOTE ANALYZE] requestId: {}, taskPatrolId: {}", requestId, taskPatrolId);
analyseReq.setRequestId(requestId);
String taskSetKey = AnalyseConstants.ANALYSE_TASK_REQUEST + taskPatrolId;
String requestSetKey = AnalyseConstants.ANALYSE_REQUEST_ALG + requestId;
redisService.setCacheObject(AnalyseConstants.ANALYSE_REQUEST_ID.concat(requestId), taskPatrolId, 20L, TimeUnit.MINUTES);
redisService.redisTemplate.opsForSet().add(taskSetKey, requestId);
redisService.expire(taskSetKey, 20L, TimeUnit.MINUTES);
String analyseFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_FILTER);
String requestUrl;
String analyseFilter = patrolTaskService.selectConfigByKey(AnalyseConstants.ANALYSE_IS_FILTER);
if ("1".equals(analyseFilter) && isFilter) {
final String analyzeFilterRequestIdRedisKey = AnalyseConstants.ANALYSE_FILTER_REQUEST.concat(requestId);
log.info("[FILTER] sendRequest analyseFilterRequestIdRedisKey: {}, analyseReq: {}", analyzeFilterRequestIdRedisKey, analyseReq);


Loading…
Cancel
Save