le-*_*ude 5 java asynchronous akka playframework
我正在使用play框架来实现REST API服务.
在一个函数中,我使用java异步库与另一个服务进行通信,它返回一个
java.util.concurrent.Future<T>我映射(使用Guava Futures.transform(~))到一个java.util.concurrent.Future<play.mvc.Result>.
现在,我该怎么做play.libs.F.Promise<Result>才能做到AsyncResult?
我发现play.libs.Akka.asPromise(scala.concurrent.Future<T> future)但是我找不到一种方法(在Java中)从Java获得scala未来.
编辑临时解决方案:这是我现在正在使用的:
Future<T> future = asyncGetTheFuture();
Promise<T> promise = Akka.future(new JFutureToPromise<T>(tempFuture));
Run Code Online (Sandbox Code Playgroud)
同
class JFutureToPromise<T> implements Callable<T> {
final Future<T> future;
final long time;
final TimeUnit unit;
private JFutureToPromise(Future<T> future, long time, TimeUnit unit) {
this.future = future;
this.time = time;
this.unit = unit;
}
private JFutureToPromise(Future<T> future) {
this(future, 10L, TimeUnit.SECONDS);
}
@Override
public T call() throws Exception {
return future.get(time, unit);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1409 次 |
| 最近记录: |