【发布时间】:2019-12-16 17:57:15
【问题描述】:
我有一个List<HystrixCommand<?>>> commands,执行这些命令并收集结果以使命令并行运行的最佳方法是什么?
我尝试过这样的事情:
List<Future<?>> futures = commands.stream()
.map(HystrixCommand::queue)
.collect(Collectors.toList());
List<?> results = futures.stream()
.map(Future::get)
.collect(Collectors.toList());
这是否并行运行命令?
即在同一线程上调用HystrixCommand.queue() 后跟Future.get() 时,.get() 调用不会阻塞某些命令并延迟其他命令?
我问是因为我找不到任何文档。
我也看过HystrixCollapser,但这仍然需要在createCommand 方法中创建和运行各个命令(如上)。
【问题讨论】: