1
这里是我的简单的路由应用程序异步执行一些逻辑200 OK。喷雾路由
我对斯卡拉和喷雾相当陌生,想知道是否有任何spray way
来解决这个具体问题。否则,我会为每个请求创建Actor
并让它完成这项工作。请指教。
这里是我的简单的路由应用程序异步执行一些逻辑200 OK。喷雾路由
我对斯卡拉和喷雾相当陌生,想知道是否有任何spray way
来解决这个具体问题。否则,我会为每个请求创建Actor
并让它完成这项工作。请指教。
没有什么特别的方法可以处理这种喷雾:只需开启异步动作(一种方法返回Future
,发送给演员的消息,无论如何)并立即致电complete
。
def doStuffAsync = Future {
// literally anything
}
path("meter"/JavaUUID) { meterUUID =>
pathEnd {
post {
entity(as[Usage]) { usage =>
doStuffAsync()
complete("OK")
}
}
}
}
相反,如果你需要等待一个异步操作以发送响应之前完成,则可以使用特定的喷雾指令与期货还是演员工作。
这听起来像你想发送消息给演员或分拆未来,而不是等待它完成。 – Gangstead 2015-02-10 21:10:49
如果不是太复杂,或者演员对于这项工作太冗长/矫枉过正,你可以将你的逻辑嵌入到“未来”中。 – ale64bit 2015-02-10 21:54:30
没有喷雾特定的方式来做到这一点 - 喷雾是一个HTTP库,而不是厨房水槽框架。使用你通常使用的任何方法 - “未来”或“演员”或任务队列是非常好的方法。 – lmm 2015-02-10 22:19:32