TimeTaskService.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.fdkankan.fusion.task;
  2. import cn.hutool.core.date.DateUnit;
  3. import cn.hutool.core.date.DateUtil;
  4. import com.fdkankan.fusion.common.util.DateUtils;
  5. import com.fdkankan.fusion.common.util.UploadToOssUtil;
  6. import com.fdkankan.fusion.config.CacheUtil;
  7. import com.fdkankan.fusion.response.FileInfoVo;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Value;
  11. import org.springframework.scheduling.annotation.Scheduled;
  12. import org.springframework.stereotype.Service;
  13. import javax.annotation.PostConstruct;
  14. import java.util.Date;
  15. import java.util.List;
  16. @Service
  17. @Slf4j
  18. public class TimeTaskService {
  19. @Autowired
  20. UploadToOssUtil uploadToOssUtil;
  21. @Value("${spring.profiles.active}")
  22. private String environment;
  23. @PostConstruct
  24. public void init() {
  25. delOssOffline();
  26. }
  27. @Scheduled(cron = "0 0 0 * * ?")
  28. public void scheduledTask() {
  29. delOssOffline();
  30. }
  31. /**
  32. * 定时删除oss中离线包文件
  33. */
  34. private void delOssOffline() {
  35. String path = "fusion/" + environment + "/offline";
  36. log.info("开始执行清除离线包:{}",path);
  37. try {
  38. List<String> list = uploadToOssUtil.listKeysFromAli(path);
  39. for (String key : list) {
  40. FileInfoVo fileInfo = uploadToOssUtil.getFileInfo(key);
  41. Long lastModified = fileInfo.getLastModified();
  42. long between = DateUtil.between(new Date(lastModified), new Date(), DateUnit.DAY);
  43. if(between >7){
  44. log.info("删除文件->{},info:{}",key,lastModified);
  45. uploadToOssUtil.delete(key);
  46. }
  47. }
  48. }catch (Exception e){
  49. log.info("del-oss-offline-error:{}",e);
  50. }
  51. }
  52. }