Шаблон для прерываемых циклов с использованием акторов

Я разрабатываю актера, который потребляет элементы из бесконечного потока, и ему нужен способ управления, когда он начинает и прекращает использование сообщений. Есть ли общий шаблон для реализации таких прерываемых циклов с акторами? Я думал о том, чтобы мой актер просто отправлял сообщения самому себе. Что-то вроде (псевдо-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"
    }
  }
}

Это лучший способ решить эту проблему?

Спасибо!

7
задан spieden 11 April 2011 в 20:33
поделиться