字符串启动:启动一堆消费者

时间:2018-10-09 13:55:23

标签: spring spring-boot

我遇到了与如何处理大量消费者有关的问题。

无论是否引发了已检查/未检查的异常,我都需要所有使用者结束。

我的意思是,当前我的springboot服务需要处理一堆URI(下载,存储,将元数据保存在数据库上,依此类推……):

public List<URI> getURIs() {//...}

public void handleURI(URI uri) {
    //download URI
    //store at mongo
    //get statistics
}

handleURI可以引发未经检查的异常,例如DuplicatedKeyException ...

当前,我正在使用Java流处理它们,但是当使用者抛出任何异常时,流将停止:

this.getURIs().stream().forEach(this::handleURI);

我需要处理所有uri,无论它们是否有问题。

我希望我解释得很好。

1 个答案:

答案 0 :(得分:0)

您可以将方法调用包装在try / catch块中,如下所示:

this.getURIs().stream().forEach(uri - > {
  try { 
    this.handleURI(uri)
  } catch (Exception ex) {
    //handle the particular uri failed case.
  }
});