我在ActiveMQ Artemis留档中读到,我们可以使用JMSQueueControl
暂停和恢复JMS消息,但我无法在最新的jar中找到接口。
任何代码示例都将不胜感激。
根据最新的留档,可以使用QueueControl
,API中有这样一个类。
暂停和恢复队列
QueueControl可以暂停和恢复底层队列。当队列暂停时,它将接收消息但不会传递它们。当它恢复时,它将开始传递排队的消息(如果有的话)。
用法示例:
String eapObjectName = "org.apache.activemq.artemis:broker=\"default\",component=addresses,address=\"jms.queue.exampleQueue\",subcomponent=queues,routing-type=\"anycast\",queue=\"jms.queue.exampleQueue\"";
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName objectName = ObjectName.getInstance(eapObjectName);
QueueControl queueControl = MBeanServerInvocationHandler.newProxyInstance(mBeanServer,objectName,QueueControl.class,false)
queueControl.pause();
参考资料: