添加定时删除功能

This commit is contained in:
孙小云 2025-08-04 13:48:33 +08:00
parent 06f6ca0591
commit e996f1a34f
1 changed files with 4 additions and 12 deletions

View File

@ -65,24 +65,21 @@ public class ProcessService {
try (BufferedReader reader = new BufferedReader( try (BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()))) { new InputStreamReader(process.getInputStream()))) {
String line; String line;
while ((line = reader.readLine()) != null && !processTerminated.get()) { while ((line = reader.readLine()) != null) {
logger.info("mergeMp4-------- {}",line); logger.info("mergeMp4-------- {}",line);
} }
} catch (IOException e) { } catch (IOException e) {
if (!processTerminated.get()) { logger.info("mergeMp4-------- Over",e);
logger.info("mergeMp4-------- Over",e);
}
} }
logger.info("mergeMp4 Over"); logger.info("mergeMp4 Over");
// 删除源文件的逻辑移到这里根据转换结果决定是否删除
// 这里暂时不删除让主线程来决定是否删除源文件
} }
}); });
CompletableFuture<Process> future = process.onExit(); CompletableFuture<Process> future = process.onExit();
// 阻塞等待进程结束增加超时时间到5分钟 // 阻塞等待进程结束增加超时时间到5分钟
Process completedProcess = null; Process completedProcess = null;
try { try {
completedProcess = future.get(5, TimeUnit.MINUTES); completedProcess = future.get(5, TimeUnit.MINUTES);
logger.info("mergeMp4正常完成-------- Over"); logger.info("mergeMp4正常完成-------- Over");
@ -96,11 +93,9 @@ public class ProcessService {
if(file.exists() && file.length() > 0){ if(file.exists() && file.length() > 0){
logger.info("mergeMp4超时但文件已生成标记为完成-------- Over"); logger.info("mergeMp4超时但文件已生成标记为完成-------- Over");
processTerminated.set(true);
process.destroy(); process.destroy();
} else { } else {
logger.error("mergeMp4超时且文件未生成强制终止进程-------- Over"); logger.error("mergeMp4超时且文件未生成强制终止进程-------- Over");
processTerminated.set(true);
process.destroyForcibly(); process.destroyForcibly();
} }
} catch (Exception e) { } catch (Exception e) {
@ -126,7 +121,6 @@ public class ProcessService {
} }
} else { } else {
logger.info("进程失败,退出码 {} " ,completedProcess.exitValue()); logger.info("进程失败,退出码 {} " ,completedProcess.exitValue());
// 进程失败时保留源文件
logger.info("转换失败,保留源文件: {}", sourceFlvPath); logger.info("转换失败,保留源文件: {}", sourceFlvPath);
} }
} else { } else {
@ -138,14 +132,12 @@ public class ProcessService {
if(file.exists() && file.length() > 0){ if(file.exists() && file.length() > 0){
logger.info("mergeMp4超时但文件已生成标记为完成-------- Over"); logger.info("mergeMp4超时但文件已生成标记为完成-------- Over");
// 超时但文件已生成删除源文件
if (sourceFlvFile.exists()) { if (sourceFlvFile.exists()) {
FileUtil.deleteFile(sourceFlvFile); FileUtil.deleteFile(sourceFlvFile);
logger.info("超时但转换成功,已删除源文件: {}", sourceFlvPath); logger.info("超时但转换成功,已删除源文件: {}", sourceFlvPath);
} }
} else { } else {
logger.error("mergeMp4超时且文件未生成强制终止进程-------- Over"); logger.error("mergeMp4超时且文件未生成强制终止进程-------- Over");
// 超时且文件未生成保留源文件
logger.info("超时且转换失败,保留源文件: {}", sourceFlvPath); logger.info("超时且转换失败,保留源文件: {}", sourceFlvPath);
} }
} }