fix:修改分组和时间

上级 dca283bc
...@@ -9,8 +9,10 @@ import lombok.extern.slf4j.Slf4j; ...@@ -9,8 +9,10 @@ import lombok.extern.slf4j.Slf4j;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -55,6 +57,7 @@ public class FileContainsUtil { ...@@ -55,6 +57,7 @@ public class FileContainsUtil {
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
StopWatch stopWatch = new StopWatch(); StopWatch stopWatch = new StopWatch();
currentTime("开始时间");
stopWatch.start("删除未用到的图片"); stopWatch.start("删除未用到的图片");
//不存在的图片集合 //不存在的图片集合
final List<String> isNotExist = new ArrayList<>(); final List<String> isNotExist = new ArrayList<>();
...@@ -70,6 +73,7 @@ public class FileContainsUtil { ...@@ -70,6 +73,7 @@ public class FileContainsUtil {
log.info("耗时统计信息:{}", JSON.toJSONString(stopWatch.getTaskInfo())); log.info("耗时统计信息:{}", JSON.toJSONString(stopWatch.getTaskInfo()));
log.info("耗时秒数:{}", JSON.toJSONString(stopWatch.getTotalTimeSeconds())); log.info("耗时秒数:{}", JSON.toJSONString(stopWatch.getTotalTimeSeconds()));
log.info("耗时分钟数:{}", JSON.toJSONString(stopWatch.getTotalTimeSeconds() / 60)); log.info("耗时分钟数:{}", JSON.toJSONString(stopWatch.getTotalTimeSeconds() / 60));
currentTime("结束时间");
} }
/** /**
...@@ -81,7 +85,7 @@ public class FileContainsUtil { ...@@ -81,7 +85,7 @@ public class FileContainsUtil {
private static void moreThread(List<List<String>> groupedPicNames, List<String> isNotExist) { private static void moreThread(List<List<String>> groupedPicNames, List<String> isNotExist) {
// 创建并启动4个线程来处理每个组的任务 // 创建并启动4个线程来处理每个组的任务
List<Thread> threads = new ArrayList<>(); List<Thread> threads = new ArrayList<>();
for (int i = 0; i < 8; i++) { for (int i = 0; i < 6; i++) {
final List<String> group = groupedPicNames.get(i); final List<String> group = groupedPicNames.get(i);
Thread thread = new Thread(() -> { Thread thread = new Thread(() -> {
// 在这里执行处理图片组的任务 // 在这里执行处理图片组的任务
...@@ -128,12 +132,13 @@ public class FileContainsUtil { ...@@ -128,12 +132,13 @@ public class FileContainsUtil {
/** /**
* 数据分组 * 数据分组
* 经过测试6组和8组的时间基本一致,线程数并不是越大越好
* *
* @param picNames * @param picNames
* @return * @return
*/ */
private static List<List<String>> dataGroup(List<String> picNames) { private static List<List<String>> dataGroup(List<String> picNames) {
int groupSize = picNames.size() / 8; // 计算每组的大小 int groupSize = picNames.size() / 6; // 计算每组的大小
List<List<String>> groupedPicNames = List<List<String>> groupedPicNames =
picNames.stream() picNames.stream()
.collect(Collectors.groupingBy(e -> picNames.indexOf(e) / groupSize)) .collect(Collectors.groupingBy(e -> picNames.indexOf(e) / groupSize))
...@@ -231,4 +236,19 @@ public class FileContainsUtil { ...@@ -231,4 +236,19 @@ public class FileContainsUtil {
System.err.printf("无法删除的路径 %s%n%s", picPath, e); System.err.printf("无法删除的路径 %s%n%s", picPath, e);
} }
} }
/**
* 打印当前时间
*
* @param str
*/
public static void currentTime(String str) {
// 获取当前时间
Date currentTime = new Date();
// 创建一个格式化器以将时间转换为所需的格式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 使用格式化器将时间转换为字符串并打印
String formattedTime = dateFormat.format(currentTime);
System.out.println(str + ":" + formattedTime);
}
} }
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册