Scala 中使用 akka system 的 scheduler 的例子

这是在scala控制台直接执行的例子。
 
import akka.actor._
import scala.concurrent.duration._
import scala.concurrent.Future

val system = ActorSystem("mySystem")
import system.dispatcher

 
Future {
    var i:Int=0
    var s:Cancellable=null
    var running:Boolean=true
    
    s = system.scheduler.schedule(1 seconds, 1 seconds) {  // 1st parameter, wait 1 sec then start the scheduler, and repeat every 1 second
        i = i + 1
        println("Test => " + i)
        if(i>=5){
            println("Have run enough times, end scheduler now.")
            s.cancel()                                    // cancel() to stop this scheduler
            running=false
        }
    }
    
    println("===== Start schduler. =====")
    while(running) Thread.sleep(3000)                     // This line is to keep the future body running, since scheduler will be async, so once
                                                          // scheduler is triggered and if without this line, the future will be completed immediately.
    println("===== Stop schduler. =====")
    
}.onComplete(_ => {
    println("============== Completed ==============")
})
原文地址:https://www.cnblogs.com/pekkle/p/10272899.html