役者をしばらく眠らせることができるようにしたいです。俳優は、どれくらい寝るかを自分で決めなければなりません。Thread.sleep() はこれを行うための推奨される方法ではないため、akka でスケジューラーを使用することを考えました。したがって、別のアクターがウェイクアップのために登録できるアクターを定義しました。
class Scheduler extends Actor {
def receive = {
case Sleep(duration) => context.system.scheduler.scheduleOnce(duration) {
sender ! Ring
}
}
}
しかし、送信側のアクターは Ring メッセージを受信しません。だから私の質問は
- アクター内で推奨されるスケジューラーによるスケジューリングはありますか?
- 送信側のアクターが Ring メッセージを受信しないのはなぜですか?
- これが不可能な場合、問題を解決するための推奨される方法は何ですか?