对于rabbitMQ,如果队列存在与否,可以使用channel.queueDeclarePassive进行检查,如果后者是这种情况则抛出异常。但是,通道也将被终止。
如何检查队列是否存在,而不会终止该频道?
由于
答案 0 :(得分:2)
您可以重新声明队列,而不是被动。
@ElementUnion({
@Element(name="x", type=X.class),
@Element(name="y", type=Y.class),
@Element(name="z", type=Z.class)
})
如果队列已经存在,它将不执行任何操作,或者它将创建队列。
但至于检查它是否存在,而不重新创建它,queueDeclarePassive是你唯一真正的选择。