执行超过3个期货不起作用

时间:2015-05-23 10:46:22

标签: scala sbt future scala-dispatch

我在我的sbt项目中使用调度库。当我初始化三个未来并运行它们时它完美地工作但是我再增加一个未来然后它进入一个循环。

我的代码:

if (Build.VERSION.SDK_INT >= 21) {
        webview.enableSlowWholeDocumentDraw ();
}

然后getRequestionFunction(pageNumber)代码:

    //Initializing Futures
    def sequenceOfFutures() ={

     var pageNumber: Int = 1
        var list ={Seq(Future{})}

        for (pageNumber <- 1 to 4) {
          list ++= {
            Seq(
              Future { 
              str= getRequestFunction(pageNumber); 
              GlobalObjects.sleep(Random.nextInt(1500)); 

              }
              )
          }
        }
    Future.sequence(list)
    }
Await.result(sequenceOfFutures, Duration.Inf)

我根据How to configure a fine tuned thread pool for futures?

中的一条建议尝试过

我将此添加到我的代码中:

def getRequestionFunction(pageNumber)={

  val h=Http("scala.org", as_str)

while(h.isComplete){

   Thread,sleep(1500);
}

}

因此,当我使用超过四种期货时,它会永远等待。有没有解决方法?

但它没有用。有人可以建议如何解决这个问题吗?

0 个答案:

没有答案