2016-08-05 66 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 –