假设我想在akka中实现ProgrammableRemote -
ProgrammableRemote
- WatchMovie
1. Tv ! PowerOn
1.1 Tv ! ChangeInput 3
2. DVD ! PowerOn
3. AVReceiver ! PowerOn
3.1 AVReceiver ! SetInput 'DVD'
我可以使用期货来序列1和1.1(以及3.和3.1)。但是,这将导致1.1在actor的接收线程的单独线程上运行。如果我使用'pipeTo self',我将需要通过'receive'方法处理来自TV的'PowerOn completed'消息的案例。
理想情况下,我希望能够扩展演员的接收,以根据未完成的请求动态处理来自其他演员的回复。在这个用例中,akka有什么解决方案吗?
答案 0 :(得分:1)
我只是发送消息,每个发件人保留他们的订单,所以如果你在启动之前得到一个ChangeInput,你还是需要处理它。使用“成为”或Akka FSM DSL来编码不同的状态,以及在每个状态下可能的命令。