Akka Actor上下文随着消息而变成



我有一个关于上下文的问题。我有以下演员:

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

最新更新