这是我第一次尝试akka - 而且我很困难。 我发现了一些tutorial code on the official akka website设置了一个主管策略,但我不断收到以下4个编译错误:
不兼容的类型。
必需:akka.actor.SupervisorStrategy.Directive
找到:akka.actor.SupervisorStrategy.Resume< - 同样适用于重启,停止,升级
我的直觉告诉我,我得到了一些非常基本的错误,下面是我使用的图书馆,以及最小的失败示例。
干杯,Seb
libraries:scala-library:2.11.2,akka-actor_2.11:2.3.5,jdk 1.7.0_45
import akka.actor.OneForOneStrategy;
import akka.actor.SupervisorStrategy;
import akka.actor.UntypedActor;
import akka.japi.Function;
import scala.concurrent.duration.Duration;
import static akka.actor.SupervisorStrategy.*;
class MyWorker extends UntypedActor {
private static SupervisorStrategy supervisorStrategy =
new OneForOneStrategy(10, Duration.create("1 minute"),
new Function<Throwable, Directive>() {
@Override
public Directive apply(Throwable t) {
if (t instanceof ArithmeticException) {
return SupervisorStrategy.resume();
} else if (t instanceof NullPointerException) {
return restart();
} else if (t instanceof IllegalArgumentException) {
return stop();
} else {
return escalate();
}
}
});
@Override
public void onReceive(Object message) throws Exception {
}
}
答案 0 :(得分:0)
解决。这是两个问题:
a)事实证明,IntelliJ IDEA 12似乎与Scala有问题。版本13.1就像一个开箱即用的魅力。
b)maven在我明确静态导入后停止抱怨缺少SupervisorStrategy $ 1.class(例如import static akka.actor.SupervisorStrategy.resume)。