【问题标题】:Akka Actor get time left on TimerAkka Actor 在 Timer 上获得剩余时间
【发布时间】:2020-12-23 10:23:27
【问题描述】:

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

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

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

我给这个计时器起个名字:lifespan。现在,当我收到一条特定消息时,我想归还此计时器上的剩余时间。

如何获取此特定计时器的剩余时间?

我发现只有一种方法可以检查计时器是否处于活动状态:

        getTimers().isTimerActive("lifespan");

【问题讨论】:

标签: java akka akka-http


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多