12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package com.shkpr.service.alambizplugin.configuration;
- import com.global.base.log.LogLevelFlag;
- import com.global.base.log.LogPrintMgr;
- import com.shkpr.service.alambizplugin.commproperties.TempFileProperties;
- import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
- import org.apache.commons.io.FileUtils;
- import org.springframework.boot.context.properties.EnableConfigurationProperties;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.scheduling.annotation.Scheduled;
- import java.io.IOException;
- import java.io.UncheckedIOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.time.Duration;
- import java.time.Instant;
- import java.util.stream.Stream;
- /**
- * 临时文件配置
- *
- * @author 欧阳劲驰
- * @since 1.0.0
- */
- @Configuration
- @EnableConfigurationProperties({TempFileProperties.class})
- public class TempFileConfiguration {
- /**
- * log
- */
- private final String mStrClassName;
- private final String mBizType;
- private final TempFileProperties tempFileProperties;
- public TempFileConfiguration(TempFileProperties tempFileProperties) {
- mStrClassName = "TempFileConfiguration";
- mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
- this.tempFileProperties = tempFileProperties;
- }
- @Scheduled(fixedRateString = "${temp-file.check-cycle}")
- public void scheduled() {
- //读取子文件
- try (Stream<Path> list = Files.list(tempFileProperties.getResourcePath())) {
- //遍历子文件
- list.forEach(path -> {
- try {
- //获取文件存在时间
- Instant fileInstant = Files.getLastModifiedTime(path).toInstant();
- Duration fileDuration = Duration.between(fileInstant, Instant.now());
- //比较生命周期,如大于生命周期,则删除
- Duration lifecycle = tempFileProperties.getLifecycle();
- if (fileDuration.compareTo(lifecycle) > 0)
- if (Files.isDirectory(path)) {
- //删除文件夹
- LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
- , String.format(
- "清理临时文件夹;路径:%s 存在时间:%s 生命周期:%s"
- , path
- , fileDuration
- , lifecycle
- )
- );
- FileUtils.deleteDirectory(path.toFile());
- } else if (Files.isRegularFile(path)) {
- //删除文件
- LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
- , String.format(
- "清理临时文件;路径:%s 存在时间:%s 生命周期:%s"
- , path
- , fileDuration
- , lifecycle
- )
- );
- FileUtils.delete(path.toFile());
- }
- } catch (IOException e) {
- throw new UncheckedIOException(e);
- }
- });
- } catch (IOException | UncheckedIOException e) {
- //打印报错信息
- LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
- , String.format("清理临时文件失败 error:%s", e)
- );
- }
- }
- }
|