Akka 调度程序未完成

Akka scheduler not completing

我需要在特定时间间隔向演员发送消息。我正在使用以下代码:

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()
  }
}

不幸的是,调度程序似乎 运行 除非我执行以下操作之一:

  1. 在它后面放一个readLine():

    val sendSchedule = system.scheduler.schedule(0 毫秒,5 分钟,senderActor,doSomething())
    读线()
    
  2. 在它后面放一个Thread.sleep():

    val sendSchedule = system.scheduler.schedule(0 毫秒,5 分钟,senderActor,doSomething())
    Thread.sleep(10000)
    

调度程序不会像上面编码的那样 运行 是有原因的吗?为什么需要睡眠才能工作?

可能是因为您在定义调度程序后立即终止了 actor 系统。