Я хочу иметь возможность заставить актеров спать некоторое время. Актеры должны сами решить, как долго они будут спать. Поскольку Thread.sleep() не рекомендуется для этого, я думал об использовании планировщика в akka. Поэтому я определил, что актер может зарегистрироваться для того, чтобы его проснулись.
class Scheduler extends Actor {
def receive = {
case Sleep(duration) => context.system.scheduler.scheduleOnce(duration) {
sender ! Ring
}
}
}
Но передающий актер никогда не получает сообщение "Кольцо". Поэтому мои вопросы:
- Планируется ли планировщик, рекомендуемый внутри актера?
- Почему передающий актер никогда не получает сообщение Ring?
- Если это невозможно, то какой рекомендуемый способ решения проблемы?