如何在Scala中编写计时器actor?

Iva*_*van 12 scala timer actor

我需要一个演员每分钟发送一条消息.我如何才能最好地实现这种行为?java.lang.Thread.sleep(long millis)据我所知,我害怕作为一个线程可以在Scala中的许多actor之间共享.

Pet*_*itz 17

或者正如@Daniel所提到的,这是一个运行的例子:

import scala.actors._
import scala.actors.Actor._

class TimerActor(val timeout: Long,val who: Actor,val reply: Any) extends Actor {
  def act {
    loop {
      reactWithin(timeout) {
        case TIMEOUT => who ! reply
      }
    }
  }
}

val a = actor {
  loop {
    react {
      case x => println(x)
    }
  }
}

val t = new TimerActor(1000, a, "Go for it")

a.start
t.start
Run Code Online (Sandbox Code Playgroud)


Dan*_*ral 12

创建一个actor receiveWithin作为计时器.