Scala Akka参与者失败后重试

Scala Akka参与者失败后重试,scala,akka,Scala,Akka,我有一个Actor,它获取一条名为Init的消息,当收到该消息时,它会尝试创建到外部服务的连接。现在,这种连接可能成功,也可能失败,我在我的Actor中知道这一信息: def receive = { case Init => { val someConn: Option[Connection] = createConnection(...) someConn match { case Some(conn) => { // do some

我有一个Actor,它获取一条名为Init的消息,当收到该消息时,它会尝试创建到外部服务的连接。现在,这种连接可能成功,也可能失败,我在我的Actor中知道这一信息:

def receive = {
  case Init => {
    val someConn: Option[Connection] = createConnection(...)
    someConn match {
      case Some(conn) => {
        // do something
      }
      case None => // I want to re-try Init, but after a few seconds delay!
  }
}

如果没有,我想再次向这个演员发送一条带有Init消息的自我消息,但我不想立即这样做。我想延迟几秒钟,比如说10秒钟。有什么建议吗?

您可以使用
scheduleOnce
延迟向自己发送一次消息,请参见我的答案:

context.system.scheduler.scheduleOnce(10 seconds, self, Init)