我正在写一个批处理作业,它将N个记录插入到数据库中。 每个事务(检查是否存在,是否插入,是否更新)都包装在Hystrix命令中。我希望为其添加一些并发性,但是有些事情对我来说还不是很清楚。
List<Observable<Result>> observables = new ArrayList<>();
for (Item item : items) {
observables.add(new ItemCommand(item).toObservable();
}
Observable.zip(observables, results... -> {
// loop over args and collect success results
// loop over args and collect error results
}).subscribe(results -> {
// generate report based on error and successes or something
});
我的问题是-Observable.zip与Hystrix线程池如何交互?例如,我为10个线程配置了ItemCommand的线程池,那么Observable.zip.subscribe只能在10并发下运行吗?还是随着Observable.zip尝试占用比Hystrix配置的线程更多的线程,我最终会看到数百个RejectedExecutionExceptions?
谢谢!