微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要在可调用

如何解决需要在可调用

我正在努力确定已取消的任务以从中获取更多信息。拥有从Executorservice调用的任务列表(可调用对象):

final ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("Demandbroker-%d").setDaemon(true).build();
    service = Executors.newCachedThreadPool(namedThreadFactory);

public List<Future<ResponseContainer>> invokeAll(final List<Callable<ResponseContainer>> demandbroker) throws InterruptedException {
    return service.invokeAll(demandbroker,450,TimeUnit.MILLISECONDS);
}

有时任务花费的时间超过给定的450毫秒。

取消最终由invokeAll方法调用者捕获,并尝试消耗未来:

final List<Future<ResponseContainer>> futures = DemandExecutorServiceFacade.instance.invokeAll(listofCallables);
futures.stream().filter(Objects::nonNull).forEach(future -> {
    try {
            final ResponseContainer responseContainer = future.get();
            ....
    } catch (final CancellationException e) {
         //printing the cancellation
    }

问题是,我无法找出哪个任务被延迟并被取消。是否有可能在被取消的任务中捕获取消?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。