我希望有可能让演员睡一会儿。演员们应该自己决定要睡多久。由于 Thread.sleep() 不是推荐的方法,所以我想到了在 akka 中使用调度程序。因此,我定义了一个演员,即另一个演员可以注册被唤醒。
class Scheduler extends Actor {
def receive = {
case Sleep(duration) => context.system.scheduler.scheduleOnce(duration) {
sender ! Ring
}
}
}
但是发送方永远不会收到 Ring 消息。所以我的问题是
- 是否建议在演员内部使用调度程序进行调度?
- 为什么发送方永远不会收到 Ring 消息?
- 如果这是不可能的,那么推荐的解决问题的方法是什么?