Возникли проблемы с планировщиком Akka 2.1.2 («система» не распознана)

Я пытаюсь запустить очень простой цикл повторяющихся функций, согласно этим примерам:

http://doc.akka.io/docs/akka/2.1.2/scala/scheduler.html

Код:

import akka.actor.Actor
import akka.actor.Props
import scala.concurrent.duration._

object Main extends Application {
  val system = akka.actor.ActorSystem("system")    // this was missing!
  import system.dispatcher

  system.scheduler.schedule( 0 milliseconds, (10*1000) milliseconds, {
    println( "click!" )
  })
}

Я получаю (сбт):

> .../src/Main.scala:34: not found: value system [error]       import
> system.dispatcher [error]              ^ [error]
> .../src/Main.scala:36: not found: value system [error]      
> system.scheduler.schedule( 0 milliseconds /*initial delay*/,
> (entry.secs*1000) milliseconds /*delay between*/, { [error]       ^

Откуда должен появиться system?

Дополнение:

У меня есть код внутри функции main(), и я ничего не унаследовал от Actor или ActorSystem. Дело в том, что я хотел бы запланировать функции, но не вдаваться в актеров. Думает ли фреймворк, что я должен из чего-то исходить (если да, то вроде как должен об этом говорить?).


person akauppi    schedule 28.03.2013    source источник
comment
ActorSystem не от чего наследовать, но это среда выполнения для акторов и, среди прочего, планировщик.   -  person Heiko Seeberger    schedule 28.03.2013
comment
Есть ли какие-либо практические различия с import context.dispatcher, поскольку у актера уже есть этот контекст?   -  person Daniel Langdon    schedule 28.01.2014
comment
@Дэниел. Наверное нет - вы правы. Весь этот вопрос кажется глупым теперь, когда я больше увлекаюсь Аккой. Я думаю, что Futures был бы способом сделать такие вещи.   -  person akauppi    schedule 28.01.2014


Ответы (1)


Похоже, что отсутствует следующее выражение перед import system.dispatcher:

val system = akka.actor.ActorSystem("system")
person Andriy Plokhotnyuk    schedule 28.03.2013
comment
Да, путаница возникает из-за того, что import system.dispatcher выглядит как импорт пакета, но он просто делает поле диспетчера системы доступным в области видимости. - person Endre Varga; 28.03.2013
comment
Это делает это, спасибо. Не печально ли, что нужно искать часы для такого рода информации. На странице документа Akka действительно отсутствует эта строка! Спасибо тем более! :) - person akauppi; 28.03.2013