【问题标题】:Akka Actor Retry on FailureAkka Actor 失败时重试
【发布时间】:2016-05-27 11:45:28
【问题描述】:

我有一个 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!
  }
}

在 None 时,我想再次向这个 actor 发送一条带有 Init 消息的 self 消息,但我不想立即这样做。我想延迟几秒钟,比如 10 秒。有什么建议吗?

【问题讨论】:

    标签: scala akka


    【解决方案1】:

    您可以使用scheduleOnce 向自己发送一次消息,但有延迟,请在此处查看我的回答:

    https://stackoverflow.com/a/31658345/5142537

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-23
      • 2013-11-27
      • 2023-04-02
      • 2019-02-12
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      相关资源
      最近更新 更多