Vertx是否有一种简单的方法来设置创建所有Verticle时将使用的选项?
在交互式调试器中调试Vertx时,需要设置一些选项以防止Vertx监视程序代码(例如,BlockedThreadChecker)抛出异常。
问题是我不确定如何设置Vertx选项,因此Vertx.vertx()工厂方法返回的所有Vertx实例都会使用它们。
例如,
public static void main(String[] args){
VertxOptions vertxOptions = new VertxOptions();
vertxOptions.setBlockedThreadCheckInterval(999888777666L);
vertxOptions.setMaxEventLoopTime(999888777666L);
Vertx myVertx = Vertx.vertx(vertxOptions); // (A)
Verticle myVerticle = new MyVerticle(); // (B)
myVertx.depoyVerticle(myVerticle); // (C)
App myApp = new App();
myApp.run();
}
public void run(){
Vertx vertx = Vertx.vertx(); // (D)
vertx.deployVerticle(new AnotherVerticle());
}
Some other code
class AnotherVerticle extends AbstractVerticle {
public void someOtherCode(){
Verticle myVerticle = new MyVerticle(); // (E)
vertx.deployVerticle(myVerticle); // (F)
}
}
步骤(A)创建一个设置了选项的Vertx实例。通过试验和错误,当此实例用于部署Verticle时,Vertx BlockedThreadChecker不会抱怨。
在步骤(B)中,在AbstractVerticle中创建一个新的Vertx实例如何在步骤(A)中设置选项?
此外,在其他已实现Verticle的类中(如(E)和(F)),如何使用步骤(A)中使用的相同选项创建Vertx实例。
如果没有正确执行此操作,我会看到接收堆栈跟踪消息,如
WARNING: Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 5853 ms, time limit is 2000
io.vertx.core.VertxException: Thread blocked
...
答案 0 :(得分:1)
您可以从单个VertxOptions
创建新的JsonObject
个实例。
但为什么你首先需要所有Vert.x实例?在大多数情况下,每个进程应该有一个Vert.x实例。