本文整理汇总了Java中akka.actor.SupervisorStrategy.Directive类的典型用法代码示例。如果您正苦于以下问题:Java Directive类的具体用法?Java Directive怎么用?Java Directive使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Directive类属于akka.actor.SupervisorStrategy包,在下文中一共展示了Directive类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildResumeOnRuntimeErrorStrategy
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
private static SupervisorStrategy buildResumeOnRuntimeErrorStrategy() {
return new OneForOneStrategy(-1, Duration.Inf(),
new Function<Throwable, SupervisorStrategy.Directive>() {
@Override
public Directive apply(Throwable throwable) throws Exception {
logException(throwable);
if (throwable instanceof Error) {
return OneForOneStrategy.escalate();
} else if (throwable instanceof RuntimeException) {
return OneForOneStrategy.resume();
} else {
return OneForOneStrategy.restart();
}
}
});
}
示例2: initSupervisor
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
protected void initSupervisor(final String supervising,
int nRetries, String maxDuration) {
strategy = new OneForOneStrategy(nRetries == -1 ? Integer.MAX_VALUE : nRetries,
("-1".equals(maxDuration) ? Duration.Inf() : Duration.create(maxDuration)), new Function<Throwable, Directive>() {
@Override
public Directive apply(Throwable t) {
switch (supervising) {
case ESCALATE:
return escalate();
case RESTART:
return restart();
case RESUME:
return resume();
case STOP:
return stop();
default:
return escalate();
}
}
});
}
示例3: apply
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
@Override
public Directive apply(final Throwable t) {
if (t instanceof DocumentTypeDataGenerationException) {
return restart();
} else if (t instanceof DocumentGenerationException) {
return restart();
} else if (t instanceof IndexDataException) {
return restart();
} else if (t instanceof ActorInitializationException) {
return stop();
} else if (t instanceof ActorKilledException) {
return stop();
} else if (t instanceof Exception) {
return restart();
} else {
return escalate();
}
}
示例4: supervisorStrategy
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
@Override
public SupervisorStrategy supervisorStrategy() {
return new OneForOneStrategy(10, Duration.create("1 minute"),
(Function<Throwable, Directive>) t -> {
LOG.warn("Supervisor Strategy caught unexpected exception - resuming", t);
return SupervisorStrategy.resume();
});
}
示例5: apply
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
@Override
public Directive apply(Throwable t) {
logger.error(t, "Unknown failure");
if (t instanceof RuntimeException) {
return SupervisorStrategy.restart();
} else {
return SupervisorStrategy.stop();
}
}
示例6: supervisorStrategy
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
@Override
public SupervisorStrategy supervisorStrategy() {
return new AllForOneStrategy(10, Duration.create(1, TimeUnit.HOURS),
new Function<Throwable, Directive>() {
@Override
public Directive apply(Throwable param) throws Exception {
if (param instanceof IllegalArgumentException) return escalate();
if (param instanceof ArithmeticException) return escalate();
if (param instanceof NullPointerException) return escalate();
else return stop();
}
}
);
}
示例7: apply
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
@Override
public Directive apply(Throwable t) {
logger.error(t, "Unknown failure");
if (t instanceof RuntimeException) {
return SupervisorStrategy.restart();
} else {
return SupervisorStrategy.stop();
}
}
示例8: getSupervisorStrategy
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
/**
* The supervisor strategy.
*
* @param notificationRetryNumber
* Number of retry when a delivery failed.
* @param notificationRetryDuration
* How long to wait before attempting to distribute the message
* again.
*/
private static SupervisorStrategy getSupervisorStrategy(int notificationRetryNumber, String notificationRetryDuration) {
return new OneForOneStrategy(notificationRetryNumber, Duration.create(notificationRetryDuration), new Function<Throwable, Directive>() {
@Override
public Directive apply(Throwable t) {
log.error("An notification processor reported an exception, retry", t);
return resume();
}
});
}
示例9: getSupervisorStrategy
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
/**
* Creates a {@link OneForOneStrategy} using the specified parameters.
*
* @param numberOfRetry
* a number of retry
* @param withinTimeRange
* the time range
* @param pluginConfigurationId
* the unique id of the plugin configuration
*/
private static SupervisorStrategy getSupervisorStrategy(int numberOfRetry, Duration withinTimeRange, Long pluginConfigurationId) {
final String errorMessage = String.format("An provisioning processor of the plugin %d reported an exception, retry", pluginConfigurationId);
return new OneForOneStrategy(numberOfRetry, withinTimeRange, new Function<Throwable, Directive>() {
@Override
public Directive apply(Throwable t) {
log.error(errorMessage, t);
return resume();
}
});
}
示例10: apply
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
@Override
public Directive apply(final Throwable t)
{
if (t instanceof DocumentTypeDataGenerationException)
{
return restart();
}
else if (t instanceof DocumentGenerationException)
{
return restart();
}
else if (t instanceof IndexDataException)
{
return restart();
}
else if (t instanceof ActorInitializationException)
{
return stop();
}
else if (t instanceof ActorKilledException)
{
return stop();
}
else if (t instanceof Exception)
{
return restart();
}
else
{
return escalate();
}
}
示例11: apply
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
@Override
public Directive apply(Throwable t) {
if (t instanceof ArithmeticException) {
return SupervisorStrategy.resume() ;
} else if (t instanceof NullPointerException) {
return SupervisorStrategy.stop();
} else if (t instanceof IllegalArgumentException) {
return SupervisorStrategy.stop();
} else {
return SupervisorStrategy.escalate();
}
}
示例12: buildResumeOrEscalateStrategy
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
private static SupervisorStrategy buildResumeOrEscalateStrategy() {
return new OneForOneStrategy(-1, Duration.Inf(),
new Function<Throwable, SupervisorStrategy.Directive>() {
@Override
public Directive apply(Throwable throwable) throws Exception {
logException(throwable);
if (throwable instanceof Error) {
return OneForOneStrategy.escalate();
} else {
return OneForOneStrategy.resume();
}
}
});
}
示例13: buildRestartOrEscalateStrategy
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
private static SupervisorStrategy buildRestartOrEscalateStrategy() {
return new OneForOneStrategy(-1, Duration.Inf(),
new Function<Throwable, SupervisorStrategy.Directive>() {
@Override
public Directive apply(Throwable throwable) throws Exception {
logException(throwable);
if (throwable instanceof Error) {
return OneForOneStrategy.escalate();
} else {
return OneForOneStrategy.restart();
}
}
});
}
示例14: apply
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
@Override
public Directive apply(Throwable t) throws Exception {
if(t instanceof ActorInitializationException) {
return OneForOneStrategy.stop();
} else if(t instanceof Exception) {
return OneForOneStrategy.restart();
}
return OneForOneStrategy.escalate();
}
示例15: apply
import akka.actor.SupervisorStrategy.Directive; //导入依赖的package包/类
public Directive apply(Throwable t) {
if (t instanceof ArithmeticException) {
return resume();
} else if (t instanceof NullPointerException) {
return restart();
} else if (t instanceof IllegalArgumentException) {
return stop();
} else {
return escalate();
}
}