是否存在 Vert.x MessageConsumer 无法从事件总线注销的情况?
Is there any scenario in which a Vert.x MessageConsumer can fail to unregister from the event bus?
public void unregisterConsumer(MessageConsumer<Object> mc) {
mc.unregister(result -> {
if(result.succeeded())
return;
else
//uh oh
});
}
如果 AsyncResult
失败,再次调用 unregisterConsumer
是否不明智,或许使用 vertx.setTimer(5000, id -> unregisterConsumer(mc));
?
如果 Vert.x 没有集群,失败的可能性可以忽略不计(只有在出现错误时才会发生)。
如果 Vert.x 是集群的,如果底层集群管理器无法删除订阅(例如,如果网络通信丢失),则可能会发生这种情况。
至于重试,如果您的应用程序动态注册使用者可能是个好主意。否则你可以忽略失败并让进程死亡。集群管理器最终会清理订阅。
public void unregisterConsumer(MessageConsumer<Object> mc) {
mc.unregister(result -> {
if(result.succeeded())
return;
else
//uh oh
});
}
如果 AsyncResult
失败,再次调用 unregisterConsumer
是否不明智,或许使用 vertx.setTimer(5000, id -> unregisterConsumer(mc));
?
如果 Vert.x 没有集群,失败的可能性可以忽略不计(只有在出现错误时才会发生)。
如果 Vert.x 是集群的,如果底层集群管理器无法删除订阅(例如,如果网络通信丢失),则可能会发生这种情况。
至于重试,如果您的应用程序动态注册使用者可能是个好主意。否则你可以忽略失败并让进程死亡。集群管理器最终会清理订阅。