我有一个Actor,它获取一条名为Init的消息,在收到此消息后,它会尝试创建与外部服务的连接。现在这个连接可能成功或失败,我在演员中知道这些信息:
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!
}
}
如果没有,我想再次向此演员发送一条自我消息,但我不想立即这样做。我想延迟几秒钟,比如说10秒钟。有什么建议吗?
答案 0 :(得分:4)
您可以使用scheduleOnce
延迟一次向自己发送消息,请在此处查看我的回答:
https://stackoverflow.com/a/31658345/5142537
context.system.scheduler.scheduleOnce(10 seconds, self, Init)