我是 Scala Akka 的新手。假設我正在培養一個Configuration
兒童演員,
object Configuration {
def apply(): Behavior[ConfigurationMessage] = Behaviors.setup(context => new Configuration(context))
}
現在我需要ActorContext[ConfigurationMessage]
在我的 HTTP 路由器中使用相同的背景關系來執行一些操作。
我怎樣才能在ActorContext
那里創建相同的
uj5u.com熱心網友回復:
ActorContext
不能在與其關聯的參與者之外使用,包括在 HTTP 路由器中。任何ActorContext
從 Actor 中泄漏的內容(例如,通過將其作為訊息發送)在設計上都會拋出例外,并且如果在 Actor 之外使用,則不會對大多數操作執行任何操作。
唯一ActorContext
可能在關聯參與者之外使用的操作是:
context.ask
和朋友可以很容易地替換為目標上的Future
-returning ,訊息發送發生在未來的回呼中。ask
RecipientRef
foreach
context.executionContext
:可以很容易地使用system.executionContext
(通常是相同的)或通過調度程式查找context.pipeToSelf
foreach
可能最好作為未來回呼中的發送來完成context.scheduleOnce
最好直接使用系統調度程式來完成context.self
有點毫無意義,因為您必須已經擁有ActorRef
才能泄漏ActorContext
context.system
同樣沒有意義,因為你已經有了系統
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/508572.html