【发布时间】:2020-12-23 10:23:27
【问题描述】:
我正在使用 Java,但 Scala 解决方案会很好(我会尝试翻译它)。
我有一个实现AbstractActorWithTimers 的演员。创建演员时,会启动一个具有生命周期的计时器(大约 60 秒):
private void setLifeSpanTimer(){
getTimers().startSingleTimer("lifespan", PoisonPill.getInstance(), this.lifeSpan);
}
我给这个计时器起个名字:lifespan。现在,当我收到一条特定消息时,我想归还此计时器上的剩余时间。
如何获取此特定计时器的剩余时间?
我发现只有一种方法可以检查计时器是否处于活动状态:
getTimers().isTimerActive("lifespan");
【问题讨论】:
-
我在doc.akka.io/japi/akka/current/akka/actor/… 类上没有找到任何有用的方法来为您提供此功能,我想也许您可以在
Actor#preStart()方法上启动一个计时器。你考虑过吗?