2013-03-28 10 views
15

Sto cercando di ottenere un molto semplice ricorrente funzione di loop in esecuzione, in base a questi campioni:Avendo problemi con Akka 2.1.2 Scheduler ('sistema' non riconosciuto)

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

Il codice:

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!") 
    }) 
} 

ottengo (SBT):

> .../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]  ^

Dov'è il system dovrebbe venire?

Addendum:

sto avendo il codice all'interno di una funzione 'main()', e non ho ereditato qualcosa da Actor o ActorSystem. Il punto è che mi piacerebbe programmare le funzioni ma non entrare in attori con questo. Il framework pensa che io debba derivare da qualcosa (se è così, dovrebbe dirlo?).

+1

Un 'ActorSystem' c'è nulla da ereditare da, ma è il tempo di esecuzione per gli attori e tra le altre cose, lo scheduler. –

+1

Esistono differenze pratiche con "import context.dispatcher" poiché l'attore ha già questo contesto? –

+0

@Daniel. Probabilmente no - hai ragione. Tutta questa domanda sembra stupida ora che sono più interessato ad Akka. Penso che Futures sarebbe il modo di fare questo genere di cose. – akauppi

risposta

29

Sembra mancante del seguente espressione prima :

val system = akka.actor.ActorSystem("system") 
+1

Sì, la confusione deriva dal fatto che "import system.dispatcher" sembra un'importazione di pacchetto, ma rende solo il campo di dispatcher del sistema disponibile nell'ambito. –

+6

Questo funziona, grazie. Non è triste che uno debba cercare * ore * per questo tipo di informazioni. La pagina del documento di Akka manca davvero quella linea! Grazie ancora! :) – akauppi

Problemi correlati