如何使用ScheduledService任务设置超时

时间:2019-07-02 19:09:47

标签: javafx

我在一个小应用程序中使用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());

    }

谢谢您的帮助

0 个答案:

没有答案