Я разрабатываю актера, который потребляет элементы из бесконечного потока, и ему нужен способ управления, когда он начинает и прекращает использование сообщений. Есть ли общий шаблон для реализации таких прерываемых циклов с акторами? Я думал о том, чтобы мой актер просто отправлял сообщения самому себе. Что-то вроде (псевдо-Scala):
class Interruptible extends Actor {
val stream: Stream
val running: boolean
def receive = {
case "start" => {
running = true
consumeItem
}
case "stop" => {
running = false
}
case "consumeNext" => consumeItem
}
def consumeItem {
if (running) {
stream.getItem
this ! "consumeNext"
}
}
}
Это лучший способ решить эту проблему?
Спасибо!