"A"と "B"という2つの頂点があります。どちらも異なるJVMインスタンスで実行されています。 これで、AはBに「操作は成功しました。自分自身を展開できます」というメッセージを送信します。 Bがこのメッセージを受け取ると、それ自体はアンデプロイされます。Vertx 3:異なるJVMインスタンスで実行されている頂点のアンデプロイ
私は2つのオプションを試しました: 1. vertx.close(); (a)Verticle Bが別のコマンドプロンプトで開かれている場合。 (b)Verticle Bが別のコマンドプロンプトで開かれていない場合。 2. vertx.undeploy(deploymentID()、); Verticle Bは別のcmdプロンプトとしても、同じcmdプロンプトとしても開かれます(A Verticle cmdプロンプトはバックグラウンドで実行されます)
1 - >(a)では、Verticle Bは閉じていますが、 。 1 - >(b)では、Verticle Bは閉じず、JVMも実行しています。第2のケースで は、私は、エラーメッセージの下になった:
java.lang.IllegalStateException: Unknown deployment
at io.vertx.core.impl.DeploymentManager.undeployVerticle(DeploymentManager.java:203)
at io.vertx.core.impl.VertxImpl.undeploy(VertxImpl.java:587)
at x.y.z.AVerticle.lambda$null$1(AVerticle.java:118)
at io.vertx.core.eventbus.impl.EventBusImpl.lambda$convertHandler$1(EventBusImpl.java:334)
at io.vertx.core.eventbus.impl.HandlerRegistration.deliver(HandlerRegistration.java:213)
at io.vertx.core.eventbus.impl.HandlerRegistration.handle(HandlerRegistration.java:192)
at io.vertx.core.eventbus.impl.EventBusImpl.lambda$deliverToHandler$3(EventBusImpl.java:503)
at io.vertx.core.impl.ContextImpl.lambda$wrapTask$3(ContextImpl.java:359)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:339)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:393)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:742)
at java.lang.Thread.run(Unknown Source)
誰もがこれを行う方法を知っていますか? ありがとうございました:)
これの背後にあるユースケースは不明です。イベントバスからメッセージを受信すると、単に頂点を無効にすることができます。ステータスのブール値フィールド。 – tsegismont