1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- package com.ruoyi.framework.task;
- import com.ruoyi.common.utils.image.ImageCompressor;
- import com.ruoyi.framework.web.controller.BaseController;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.stereotype.Component;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- /**
- * 图片压缩定时任务
- * 用于系统定时任务管理
- *
- * @author ruoyi
- */
- @Component("imageCompressionTask")
- public class ImageCompressionTask extends BaseController {
- private static final Logger logger = LoggerFactory.getLogger(ImageCompressionTask.class);
- /**
- * 图片压缩任务
- */
- public void imageCompressionTask() {
- logger.info("🖼️ 开始执行图片压缩任务");
- try {
- // 需要压缩的文件夹路径列表
- List<String> directories = Arrays.asList(
- "/u03/cpmsfile/uploadPath/upload/eyewash",
- "/u03/cpmsfile/uploadPath/upload/annihilator",
- // H110-H118,H130
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass1",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass2",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass3",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass4",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass5",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass6",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass7",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass8",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass9",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass10",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass11",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass12",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass13",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass14",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass15",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass16",
- // H109
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass1A",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass1B",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass2A",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass2B",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass3A",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass3B",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass4A",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass4B",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass5A",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass5B",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass6A",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass6B",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass7A",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass7B",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass8A",
- "/u03/cpmsfile/uploadPath/upload/furnancePressurePass8B"
- // 在这里添加更多需要压缩的文件夹路径
- );
- if (directories.isEmpty()) {
- logger.warn("⚠️ 未配置需要压缩的文件夹路径");
- return;
- }
- // 执行压缩任务(使用默认配置:200KB目标大小,启用详细日志)
- logger.info("📁 开始压缩文件夹: {}", directories);
- ImageCompressor.CompressionResult result = ImageCompressor.compressDirectories(
- directories, 200, 1, 100,
- new String[]{"jpg", "jpeg", "png", "bmp"},
- true // 启用详细日志
- );
- // 记录压缩结果
- logger.info("🎉 图片压缩任务完成");
- logger.info("📊 压缩统计: 总文件数={}, 成功={}, 失败={}, 跳过={}, 压缩比例={:.1f}%",
- result.getTotalFiles(), result.getSuccessCount(), result.getFailCount(),
- result.getSkipCount(), result.getCompressionRatio());
- } catch (Exception e) {
- logger.error("❌ 图片压缩任务执行失败", e);
- }
- }
- }
|