2016-08-05 65 views
0

在下面的代码中,每个服务都实现了检查特性,它返回布尔值。我是scala的新手,所以想知道是否有一种方法可以在这里添加一些服务它会立即返回布尔值(对此服务的响应不会被使用,因此它可以每次都返回true),并在后台为填充数据库工作,while循环完成并将结果返回给请求者。Scala PlayFramework不等待响应只是存储在数据库中

requestedChecks.keys.par.foreach(serviceName => { 
    if(requestedChecks(serviceName) == 1 && checkList.contains(serviceName)) { 
     data += (serviceName -> initializeService(serviceName).check(mapForService)) 
    } 
}) 

回答

0

你可以做到这一点它是@mrfyda这也是我的想法的建议:

import play.api.libs.concurrent.Execution.Implicits._ 
import scala.concurrent.Future 

Future { 
    requestedChecks.keys.par.foreach(serviceName => { 
     if(requestedChecks(serviceName) == 1 && checkList.contains(serviceName)) { 
      data += (serviceName -> initializeService(serviceName).check(mapForService)) 
     } 
    }) 
} 

Ok(view.html.index()) // or whatever you response looks like 
+0

谢谢。这是完美的。 sascha10000&@mrfyda –