imp: 改进线程池使用

厦门中医院联众-XiaMenZhongLianZhong
wyb 5 months ago
parent 59bba70ffe
commit 81a2672a65

@ -90,7 +90,8 @@ public class UpdateService {
LinkedBlockingDeque<Runnable> workQueue = new LinkedBlockingDeque<>(); LinkedBlockingDeque<Runnable> workQueue = new LinkedBlockingDeque<>();
ThreadFactory threadFactory = Executors.defaultThreadFactory(); ThreadFactory threadFactory = Executors.defaultThreadFactory();
ThreadPoolExecutor.CallerRunsPolicy handler = new ThreadPoolExecutor.CallerRunsPolicy(); ThreadPoolExecutor.CallerRunsPolicy handler = new ThreadPoolExecutor.CallerRunsPolicy();
ThreadPoolExecutor executor = new ThreadPoolExecutor(corePoolSize, ExecutorService patientExecutors = Executors.newFixedThreadPool(corePoolSize);
ThreadPoolExecutor fileExecutor = new ThreadPoolExecutor(corePoolSize,
maximumPoolSize, maximumPoolSize,
keepAliveTime, keepAliveTime,
unit, unit,
@ -106,7 +107,7 @@ public class UpdateService {
String picDir = syncDir + File.separator + cardInfo.getId(); String picDir = syncDir + File.separator + cardInfo.getId();
FilePathUtil.mkdirs(picDir); FilePathUtil.mkdirs(picDir);
Future patientFuture = executor.submit(() -> { Future patientFuture = patientExecutors.submit(() -> {
try { try {
List<Picture> pictures = dataQuery.getPictures(cardInfo.getId()); List<Picture> pictures = dataQuery.getPictures(cardInfo.getId());
if (CollectionUtils.isEmpty(pictures)) { if (CollectionUtils.isEmpty(pictures)) {
@ -125,7 +126,7 @@ public class UpdateService {
dataQuery.updatePicPath(cardInfo, lianZhongDir); dataQuery.updatePicPath(cardInfo, lianZhongDir);
List<Future> fileFutures = new ArrayList<>(); List<Future> fileFutures = new ArrayList<>();
for (Picture picture : pictures) { for (Picture picture : pictures) {
Future fileFuture = executor.submit(() -> { Future fileFuture = fileExecutor.submit(() -> {
String tifFilePath = lianZhongDir + File.separator + removeFileExtension(picture.getPicname()) + ".tif"; String tifFilePath = lianZhongDir + File.separator + removeFileExtension(picture.getPicname()) + ".tif";
File tifFile = new File(tifFilePath); File tifFile = new File(tifFilePath);
if (tifFile.exists()) { if (tifFile.exists()) {
@ -258,7 +259,8 @@ public class UpdateService {
} catch (Exception ex) { } catch (Exception ex) {
log.error("联众同步数据异常:" + ex.getMessage(), ex); log.error("联众同步数据异常:" + ex.getMessage(), ex);
} finally { } finally {
executor.shutdown(); patientExecutors.shutdown();
fileExecutor.shutdown();
} }
} }

Loading…
Cancel
Save