使用Play後!框架有一段時間,我正在第一次看Spray。我從我在GitHub上找到的一個示例開始,現在我想修改它,但要獲得它的工作方式並不容易。在噴霧路線中調用演員並等待演員的響應
如何在下面的代碼中等待來自演員的消息?
package api
import akka.actor.ActorRef
import scala.concurrent.ExecutionContext
import spray.routing.Directives
import core.ClassifierActor
class ClassifierService(classifier: ActorRef)(implicit executionContext: ExecutionContext)
extends Directives with DefaultJsonFormats {
import ClassifierActor._
implicit val classifyMessageFormat = jsonFormat4(ClassifyMessage)
val route =
path("classify") {
post {
handleWith {
// The ClassifierActor gets a ClassifyMessage and
// sends a ClassifiedMessage back to the sender.
// How can wait for the ClassifiedMessage here
// and send a HttpResponse back?
cm: ClassifyMessage => classifier ! cm
// ???
}
}
}
}
我沒有編寫我們的路由代碼,所以我不知道最好的方法,但廣泛地說,你永遠不會等待:而是將請求交給一個演員,或者通過一個告訴負責一旦處理完成就發送回覆。 – Rup 2014-10-11 11:12:28
我是Spray的新手,所以我無法從您的回覆中獲得任何優勢。我寧願需要一段代碼。 – Max 2014-10-11 13:28:32