Akka 演员在计时器上获得剩余时间

时间:2020-12-23 10:23:27

标签: java akka akka-http

我使用的是 Java,但 Scala 解决方案会很好(我会尝试翻译它)。

我有一个实现 AbstractActorWithTimers 的 actor。当演员被创建时,一个生命周期的计时器将启动(大约 60 秒):

    private void setLifeSpanTimer(){
        getTimers().startSingleTimer("lifespan", PoisonPill.getInstance(), this.lifeSpan);
    }

我为这个计时器命名:lifespan。现在,当我收到一条特定的消息时,我想返回此计时器上剩余的时间。

我怎样才能获得这个特定计时器的剩余时间?

我只找到了一种检查计时器是否处于活动状态的方法:

        getTimers().isTimerActive("lifespan");

1 个答案:

答案 0 :(得分:0)

您可以通过使用 Actor 创建的时间戳来启动 Actor 来解决此问题。然后在收到特定消息时,您将使用此时间戳来获取剩余时间。我认为没有允许向计时器询问其内部状态的 API。