如何解决Reactor Parallel Flux 在使用 blockLast() 进行迭代期间卡住
我是 Reactor 的新手,我在 Spring Boot 应用程序中使用了 reactor 核心 3.4.6。 使用并行通量时,在迭代数组元素后,它在某个时刻无限期地卡住,没有抛出异常,我必须手动杀死它。我无法弄清楚我的代码有什么问题,或者我的方法是错误的。下面是我的代码片段。
Flux.fromArray(tmsIDList)
.parallel()
.runOn(Schedulers.boundedElastic())
.doOnNext(tmsID -> {
try {
long rowCount = 0;
FullLoadBatchLogEntity batchlogRecord = createLogRecord(
batchDetails.getBatchId(),tmsID,"STARTED",Timestamp.valueOf(LocalDateTime.Now()),null,null
);
logger.info("Executing xxxxxxxxx-" + tmsID);
batchLoggerService.makeFullLoadBatchLogEntry(batchlogRecord);
executesql(tmsID);
rowCount = generateSome(tmsID);
uploadCSVToSFTP(tmsID,tmsCSV.get(tmsID));
batchlogRecord.setSTATUS("COMPLETED");
batchlogRecord.setEND_TIME(Timestamp.valueOf(LocalDateTime.Now()));
batchlogRecord.setROWS_AFFECTED(rowCount);
batchLoggerService.makeFullLoadBatchLogEntry(batchlogRecord);
logger.info("xxxxxxxxxyyyyyyyyyyy" + tmsID + " Completed!");
} catch (Exception e) {
batchlogRecord.setSTATUS("Failed");
batchlogRecord.setEND_TIME(Timestamp.valueOf(LocalDateTime.Now()));
logger.error("uuuuuuuuuuutt" + tmsID + " Failed!");
e.printstacktrace();
}
})
.sequential()
.blockLast();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。