package com.fdkankan.ucenter.task; import com.fdkankan.common.constant.ConstantFilePath; import com.fdkankan.common.util.DateUtil; import com.fdkankan.common.util.FileUtil; import com.fdkankan.redis.util.RedisUtil; import com.fdkankan.ucenter.common.RedisKeyUtil; import com.fdkankan.ucenter.constant.QrCodeFilePath; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.io.File; import java.util.Arrays; import java.util.Date; import java.util.List; @Component @Slf4j public class TaskService { @Autowired RedisUtil redisUtil; @Scheduled(cron = "0 */10 * * * ?") public void delLoginQrCode(){ long startTime = new Date().getTime(); log.info("delLoginQrCode:开始定时清理本地登录二维码" ); String qrCodePath = QrCodeFilePath.LOGIN_QR_CODE_PATH; String aliQrCodePath = QrCodeFilePath.ALI_QRCODE_FOLDER; String wxCodePath = QrCodeFilePath.WEIXIN_QRCODE_FOLDER; File file = new File(qrCodePath); File file2 = new File(wxCodePath); File file3 = new File(aliQrCodePath); File[] files = file.listFiles(); File[] files1 = file2.listFiles(); File[] files2 = file3.listFiles(); delFile(files); delFile(files1); delFile(files2); log.info("delLoginQrCode:结束定时清理本地登录二维码:耗时{}秒",(new Date().getTime() - startTime)/1000 ); } private void delFile(File[] files){ if(files == null && files.length >0){ return; } for (File f : files) { if(f==null || !f.getName().contains(".")){ continue; } String name = f.getName().substring(0,f.getName().lastIndexOf(".")); if(!redisUtil.hasKey(RedisKeyUtil.QRCODE + name)){ log.info("删除文件:{}",f.getPath()); FileUtil.delFile(f.getPath()); } } } }