akka future onsuccess onfailure都没有执行

时间:2017-02-13 06:56:11

标签: java multithreading akka

我们正在使用Akka框架进行进程间通信。几天前QA团队确定了一些陷入困境的请求。对于某些请求,未调用onSuccess()和onFailure()回调方法。最后一行日志显示

"Charging Customer."

并且该特定交易的流程在那里停止。下一个日志应该是

"Charging response or Charging Failed"

这种行为可能是什么原因?可能是由于调度员被窒息了吗?我们正在使用默认调度程序。

代码

log.debug("Charging Customer");
Future future = Patterns.ask(actorSelection, new Gson().toJson(request), timeout);
future.onSuccess(new onChargingSuccess<>(ccRequest), context().system().dispatcher());
future.onFailure(new onFailureHandler(ccRequest), context().system().dispatcher());


private class onChargingSuccess<T> extends OnSuccess<T> {
 @Override
 public void onSuccess(T t) throws Throwable {
        log.debug("Charging response:" + t.toString());
}  

private class onFailureHandler extends OnFailure {
 @Override
    public void onFailure(Throwable thrwbl) throws Throwable {
        log.info("Charging Failed");
}

1 个答案:

答案 0 :(得分:0)

嗯,这不是一个真正的解决方案,但重启模块解决了这个问题。该模块运行了一年。我知道现在这个问题已成为一个非常普遍的问题,但我会将其保留在这里以防万一我们挖掘实际问题并找到解决方案。我会在那种情况下更新。