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