1分後に永久にタスクを実行したい。達成するために私は自分の仕事を書いたexecutorService.scheduleAtFixedRate永久にタスクを実行する
public void poll() {
ScheduledExecutorService executorService= Executors.newScheduledThreadPool(1);
ScheduledFuture files=executorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
String path="/Desktop/PNL/Test";
List<String> filesPaths= new ArrayList<String>();
File folder= new File(path);
File[] listOfFiles= folder.listFiles();
for (File file : listOfFiles) {
filesPaths.add(file.getAbsolutePath());
}
if(!CollectionUtils.isEmpty(filesPaths)){
try{
update(filesPaths);
}
catch(Exception e){
System.out.println(e.toString());
}
}
}
}, 0, 1, TimeUnit.MINUTES);
files.cancel(false);
//executorService.shutdown();
}
しかし、タスクは1分だけ実行され、1分後には実行されません。 ここで何が間違っているのか分かりません。
残りのコードは表示できますか?一見して、私はそれがあなたがそれをどのように呼び出すのかという問題であるかもしれないと思います。 – Dibesjr
その行 'files.cancel(false);'とは何ですか?スケジュールされたタスクをキャンセルすると、明らかにもう実行されません。 – Jesper
@Dibesjrはコード –