6
我正在构建一个创建主题树的扩散解决方案。如何删除没有订阅者的主题?
我按需创建主题以反映从RabbitMQ Feed收到的值。每个主题都有一个内存开销,所以我希望在一段时间内没有订阅者时删除该主题。
这可以通过统一的Java API完成吗?
我正在构建一个创建主题树的扩散解决方案。如何删除没有订阅者的主题?
我按需创建主题以反映从RabbitMQ Feed收到的值。每个主题都有一个内存开销,所以我希望在一段时间内没有订阅者时删除该主题。
这可以通过统一的Java API完成吗?
TopicEventListener(TopicControl功能的一部分)提供了此功能。当话题有0个用户时,以及当一个话题有至少1个用户时,提供单独的回叫。
例子:
public TopicEventListenerClient() {
session = Diffusion.sessions().principal("admin").password("password").open("ws://localhost:8080");
topicControl = session.feature(TopicControl.class);
topicControl.addTopicEventListener("rabbitMQ/foo", new TopicEventListener() {
@Override
public void onClose(String arg0) {
LOG.info("Listener closed");
}
@Override
public void onError(String arg0, ErrorReason arg1) {
LOG.info("Error on listener: " + arg1);
}
@Override
public void onRegistered(String arg0, Registration arg1) {
LOG.info("Listener registered");
}
@Override
public void onHasSubscribers(String arg0) {
LOG.info("Topic: " + arg0 + " has at least 1 subscriber");
}
@Override
public void onNoSubscribers(String arg0) {
LOG.info("Topic: " + arg0 + " has no subscribers");
}
});
}
希望这有助于!
非常感谢你这么快速的回应,解决了这个问题! –
从原始队列或从树中移除?此外,如果您已经尝试写出骨架代码,请添加(通过使用[编辑])到您的问题。 –