Как установить время ожидания с задачей ScheduledService - PullRequest
0 голосов
/ 02 июля 2019

Я работаю с параллелизмом 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());

    }

Спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...