如何解决需要在可调用
我正在努力确定已取消的任务以从中获取更多信息。拥有从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 举报,一经查实,本站将立刻删除。