我正在执行测试,需要提取所有延迟消息(ActiveMQ Classic gui 中计划的选项卡)。这在 ActiveMQ Classic 中可能吗?我用 Java 编写测试。
我期望消耗每条延迟的消息(未消耗)
Destination management = session.createTopic(ScheduledMessage.AMQ_SCHEDULER_MANAGEMENT_DESTINATION);
MessageProducer mproducer = session.createProducer(management);
Message request = session.createMessage();
request.setStringProperty(ScheduledMessage.AMQ_SCHEDULER_ACTION, ScheduledMessage.AMQ_SCHEDULER_ACTION_BROWSE);
mproducer.send(request);
Destination browseDest = session.createTemporaryQueue();
MessageConsumer browser = session.createConsumer(browseDest);
Message scheduled = browser.receive(5000);
在将消息发送到调度程序管理地址之前,您需要创建代理将消息发送到的目标和使用者,以便您可以将消息发送的地址分配给消息的回复目标。
Destination browseDest = session.createTemporaryQueue();
MessageConsumer browser = session.createConsumer(browseDest);
Destination management = session.createTopic(ScheduledMessage.AMQ_SCHEDULER_MANAGEMENT_DESTINATION);
MessageProducer mproducer = session.createProducer(management);
Message request = session.createMessage();
request.setJMSReplyTo(browseDest);
request.setStringProperty(ScheduledMessage.AMQ_SCHEDULER_ACTION,
ScheduledMessage.AMQ_SCHEDULER_ACTION_BROWSE);
mproducer.send(request);
Message scheduled = browser.receive(5000);