我在一个小应用程序中使用javaFX并发。 我有3 ScheduledService在后台运行。 1是从远程服务器读取源文件,1是管理与某些打印机的TCP连接,最后一个是更新服务器上的日志。
在工厂中运行了一些测试之后,看来我不得不处理一些任务,由于我认为某些网络或硬件问题,这些任务有时永远也不会结束。 问题在于ScheduledSevice将更新源文件。简而言之,我想为ScheduledService执行的任务设置一个超时。
try {
log.trace("création tâche Source");
executorSource = new ScheduledService<Void>() {
@Override
protected Task<Void> createTask() {
// This is the task I want to set the timeout
Task<Void> tacheSource = new TacheSource(instance, config, tailleFichierSource, heureMAJSource);
return tacheSource;
}
};
executorSource.setDelay(Duration.millis(500.0d));
executorSource.setPeriod(Duration.millis(config.getRefreshRateDb()));
executorSource.setRestartOnFailure(true);
executorSource.setMaximumCumulativePeriod(Duration.millis(config.getRefreshRateDb() * 3));
executorSource.start();
} catch (Exception e) {
log.error("création tâche source échouée : {}\nCause : {}", e.getMessage(), e.getCause());
}
谢谢您的帮助