我有一个关于上下文的问题。我有以下演员:
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
。如果那没有回答您的问题,您能否通过"向新上下文发送消息"来详细说明您的意思?