阿卡演员语境与信息

阿卡演员语境与信息

问题描述:

成为我有关于上下文成为阿卡的问题。我有以下演员:阿卡演员语境与信息

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该被调用的方法。 如果不回答你的问题,可以请您详细阐述了更多你的意思是“将消息发送到新的环境”是什么?

+0

所以,我的意思是,做一个背景下成为后,将提供给checkRamp的方法,我在下一行发送邮件? – sparkr

+0

是的,这就是context.become做什么。 – DeusEx