阿卡演员语境与信息
问题描述:
成为我有关于上下文成为阿卡的问题。我有以下演员:阿卡演员语境与信息
class MyActor extends Actor {
def active(state: State): Receive = {
case Dispatch(power) => // Dispatch to the specified power value
context.become(
checkRamp(
Observable.intervalAtFixedRate(cfg.rampRateInSeconds),
State.dispatch(state.copy(setPoint = power))
)
)
self ! SomeMessage
}
def checkRamp(obs: Observable[Long], state: State): Receive = {
case SomeMessage => // do something
}
}
以上的工作?做一个背景下成为后,我的意思是,我可以将消息发送到新的环境?这个新消息是否保存?当然,我可以尝试,但只是想知道。如果这不起作用,还有什么选择?我想切换上下文并发送消息到新的上下文!
答
我不能完全让你通过“我可以将消息发送到新的情境”的意思,但基本上,当你在一个演员上下文切换,您收到消息时改变自己的行为,这样checkRamp
变当它接收到一个消息,而不是原来的receive
该被调用的方法。 如果不回答你的问题,可以请您详细阐述了更多你的意思是“将消息发送到新的环境”是什么?
所以,我的意思是,做一个背景下成为后,将提供给checkRamp的方法,我在下一行发送邮件? – sparkr
是的,这就是context.become做什么。 – DeusEx