在一个actor中执行代码时,我需要检查该actor是否仍然存活。这样做是否明智,或者有更好的方法?
if (self != akka.actor.DeadLetter) {
// do something
}
谢谢!
编辑---
感谢您提供的所有意见。以下是发生的情况。我正在使用Play。当我的actor启动时,在收到请求后,会安排一个超时。
Promise.timeout({
Logger.info(s"$self, timeout expired")
// do something
}, timeoutValue)
有时候,演员在超时到期之前因其他原因被停止(例如客户端断开连接)。在这种情况下,我在日志中看到的是:
Actor[akka://application/deadLetters], timeout expired.
据我理解,这意味着默认的
deadLetters
演员正在执行该代码。那么我的问题是:最好的方法是什么,以检查 Promise 代码是否在演员终止后执行,并在这种情况下防止其继续执行?