我需要以特定的间隔向演员发送消息。我使用以下代码:
object SendToActor extends App {
import Sender._
val system: ActorSystem = ActorSystem("sender")
try {
val senderActor: ActorRef = system.actorOf(Sender.props, "sendActor")
val sendSchedule =
system.scheduler.schedule(0 milliseconds, 5 minutes, senderActor, doSomething())
} finally {
system.terminate()
}
}
不幸的是,除非我执行以下操作之一,否则调度程序似乎无法运行:
在它之后放一个readLine()
:
val sendSchedule = system.scheduler.schedule(0 milliseconds, 5 minutes, senderActor, doSomething()) readLine()
在它之后放一个Thread.sleep()
:
val sendSchedule = system.scheduler.schedule(0 milliseconds, 5 minutes, senderActor, doSomething()) Thread.sleep(10000)
为什么调度程序不能像上面那样运行?为什么它需要睡眠才能工作?
答案 0 :(得分:3)
可能是因为您在定义调度程序后立即终止了actor系统。