有一个需求,就是中断某个方法中的for循环
目前的做法是:for循环中,增加if判断,如果满足条件就return,会中断这个方法
for (int i = 0; i < totalIndex; i++) { ...... // 发送之前,判断一下任务状态,如果是暂停或者停止,直接return? FileInfo newFileInfo = fileInfoRepository.findById(fileInfo.getFileId()).get(); Integer fileState = newFileInfo.getFileState(); if (fileState == 4 || fileState == 5) { return; } ...... }
当然,在这个过程中遇到了一些问题,比如去数据库查询fileState的值时,我原本想获得最新的值,但是由于jpa的缓存,获取不到实时的值,
有一个关键的配置:spring.jpa.open-in-view=false
参考:https://blog.csdn.net/qq_30737525/article/details/109092491
还有个问题,就是在调试的时候,如果故意卡住在这个方法中,调用这个类中的其他方法,会报超时