请查看位于df['Amount, DKK'] = np.vectorize(convert_rates)(
amount=df['Amount'],
currency=df['Currency'],
PstngDate=df['Date']
)
的课程内的以下代码:
AbstractVerticle
假设@Override
public void start(Future<Void> serverStartFuture) throws Exception {
log.info("Deploying " + this.getClass().toString() + " verticle...");
//TODO: Handler is not calling.
serverStartFuture.setHandler(event -> {
if(event.succeeded()){
log.info("Deploying " + this.getClass().toString() + " verticle SUCCESS");
} else if (event.failed()){
log.error("Deploying " + this.getClass().toString() + " verticle FAIL:");
log.error(event.cause());
}
});
/* To follow future compose pattern in future */
Future<Void> initSteps = this.initHttpServ();
initSteps.setHandler((AsyncResult<Void> asyncResult) -> {
if(asyncResult.succeeded()){
serverStartFuture.complete();
}else if(asyncResult.failed()){
serverStartFuture.fail(asyncResult.cause());
}
});
}
始终返回完整的未来:
initHttpServ
为什么在我的情况下永远不会调用private Future<Void> initHttpServ(){
Future<Void> httpServerFuture = Future.future();
httpServerFuture.complete();
return httpServerFuture;
}
?
我理解这个概念:
serverStartFuture.setHandler
f
future handler f
至f
/ complete
fail
结果后,处理程序将调用但我的代码似乎否定了这种方法。 我做错了吗?
答案 0 :(得分:1)
你不应该设置serverStartFuture
处理程序。当部署Verticle时,它由Vert.x设置。当你的Verticle成功启动时,你应该完成未来,否则就会失败。
请参阅Vert.x核心文档中的Asynchronous Verticle start and stop。