繁体   English   中英

使用Java API中的Akka AbstractActorWithTimers

[英]Working with Akka AbstractActorWithTimers from Java API

我正在尝试在Java(很好,Groovy,实际上)应用程序内使用新的Akka Timers API,当然要使用Akka / Java API(我正在使用'com.typesafe.akka:akka-actor_2.11:2.5.4'坐标是'com.typesafe.akka:akka-actor_2.11:2.5.4' )。 当我尝试创建新的按计时器操作的actor时,出现编译器错误:

class MyTimeAwareActor extends AbstractActorWithTimers {
    @Override
    void onReceive(Object message) {
        if(message in StartNewTimer) {
            timers.startPeriodicTimer(/* blah whatever */)
        }
    }
}

此代码在使用@Override注释时产生编译器错误:

com.example.myapp.MyTimeAwareActor中的Groovy:Method'onReceive'不会从其超类或接口中重写方法,而是使用@Override进行注释。

这告诉我我使用的这个演员不正确。 我要做的就是每次actor收到StartNewTimer消息时启动一个新计时器(执行某些操作)。

有什么想法可以解决该编译器错误吗?

createReceive替换onReceive (以下内容在Java中;您可以将其转换为Groovy):

@Override
public Receive createReceive() {
    return receiveBuilder()
        .match(StartNewTimer.class, message -> {
            getTimers().startPeriodicTimer(/* blah whatever */);
        })
        .build();
}

onReceive未在AbstractActorWithTimers或其父AbstractActor中定义( onReceiveUntypedAbstractActor定义)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM