Я работаю с параллелизмом 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());
}
Спасибо за вашу помощь