Я бы хотел обрабатывать все мои CSV-файлы в каталоге одновременно, используя потоки.Я получил что-то, но файлы не обрабатываются.Может ли кто-нибудь еще помочь мне?Похоже, что мой список сообщений остается пустым, и ничего не происходит.Я использовал Executorservice и тоже использую spring.
Это мой класс File Generator .
public class FileGenerator implements MessageGenerator {
@Getter
private static List<CameraMessage> messages;
private final ExecutorService pool = Executors.newCachedThreadPool();
private static Logger logger = Logger.getLogger((FileGenerator.class.getName()));
public FileGenerator(String folderpath) {
String dir = System.getProperty("user.dir");
File inputfolder = new File(dir + folderpath);
messages = new ArrayList<>();
for (File fileEntry : inputfolder.listFiles()) {
pool.execute((() -> {
logger.info("pool executed");
try {
FileReader filereader = new FileReader(fileEntry);
// Create csvReader object and skip first line (Header line)
CSVReader csvReader = new CSVReaderBuilder(filereader)
//.withSkipLines(1)
.build();
List<String[]> allData = csvReader.readAll();
System.out.println();
LocalDateTime dateTime = LocalDateTime.now();
// Create message list from CSV lines
for (String[] row : allData) {
CameraMessage message = new CameraMessage(
Integer.parseInt(row[0]),
row[1], dateTime,
Integer.parseInt(row[2]));
System.out.println(message.toString());
messages.add(message);
}
} catch (Exception e) {
logger.warning(e.getMessage());
}
}));
}
@Override
public CameraMessage generate() {
if (messages.isEmpty()) {
System.exit(0);
}
return messages.remove(0);
}
Здесь у меня есть генератор конфигурации , потому что я использую пружину:
@Configuration
public class GeneratorConfig {
@Value("${filemode.folder}")
private String folderpath;
@Bean
@ConditionalOnProperty(name="load", havingValue = "file")
public MessageGenerator fileGenerator(){
return new FileGenerator(folderpath);
}
@Bean
@ConditionalOnProperty(name="load", havingValue = "random")
public MessageGenerator randomMessageGenerator(){
return new RandomMessageGenerator();
}
}