Scala Akka参与者失败后重试
我有一个Actor,它获取一条名为Init的消息,当收到该消息时,它会尝试创建到外部服务的连接。现在,这种连接可能成功,也可能失败,我在我的Actor中知道这一信息: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
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)