Commit 92ea3cc2 authored by suhuiguang's avatar suhuiguang

refact(3库刷新) :优化

1.执行速度调优
parent 897f8799
......@@ -25,17 +25,22 @@ public class DataRefreshDispatcher implements IDataRefreshDispatch {
@Async
public void doDispatch(List<IDataRefreshHandler> dataRefreshHandlers, List<TzsDataRefreshMessage> messages) {
int total = dataRefreshHandlers.size();
dataRefreshHandlers.forEach(dataRefreshHandler -> {
messages.parallelStream().forEach(message -> {
try {
message.setDistributions(total);
dataRefreshHandler.doRefresh(message);
markRefreshSuccess(message, dataRefreshHandler);
} catch (Exception e) {
log.error("企业、设备、人员,总线分发处理变更数据失败,消息内容:{}, 错误日志:{}", message, e.getMessage(), e);
markRefreshFailure(message, dataRefreshHandler, e);
}
});
messages.parallelStream().forEach(message -> {
try {
message.setDistributions(total);
dataRefreshHandlers.forEach(dataRefreshHandler -> {
try {
dataRefreshHandler.doRefresh(message);
markRefreshSuccess(message, dataRefreshHandler);
} catch (Exception e) {
log.error("企业、设备、人员,总线分发处理变更数据失败,消息内容:{}, 错误日志:{}", message, e.getMessage(), e);
markRefreshFailure(message, dataRefreshHandler, e);
}
});
doUpdateMessage(message);
} catch (Exception e) {
log.error("3库数据刷新,写入数据库失败,消息:{}", message, e);
}
});
}
......@@ -46,17 +51,15 @@ public class DataRefreshDispatcher implements IDataRefreshDispatch {
private void markRefreshSuccess(TzsDataRefreshMessage message, IDataRefreshHandler dataRefreshHandler) {
message.setSuccessDistributionHandler(message.getSuccessDistributionHandler() == null ? dataRefreshHandler.getClass().getSimpleName() : message.getSuccessDistributionHandler() + ";" + dataRefreshHandler.getClass().getSimpleName());
updateMessageStatus(message);
}
private void markRefreshFailure(TzsDataRefreshMessage message, IDataRefreshHandler dataRefreshHandler, Exception e) {
message.setErrorMsg(buildErrorMsg(dataRefreshHandler, message, e));
message.setFailedDistributions(message.getFailedDistributions() == null ? 1 : message.getFailedDistributions() + 1);
updateMessageStatus(message);
}
private void updateMessageStatus(TzsDataRefreshMessage message) {
private void doUpdateMessage(TzsDataRefreshMessage message) {
message.setRecDate(new Date());
refreshMessageService.saveOrUpdate(message);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment