[英]Active MQ Scheduled Job Id
我在 Java Spring 中使用 ActiveMQ。 我启用了调度程序,并设法创建了计划作业(以编程方式)。 我还设法编写了一种根据作业 ID 删除它们的方法。 我一直在使用 JmsTemplate 浏览队列,但它仅在队列有一些消息等待时才有效。 当队列为空时,我找不到作业 ID。
我的问题是我应该如何获得预定的工作 ID?
从您的问题来看,您似乎想查看安排了哪些消息,因此要完成此操作,您需要创建一个在名为“ActiveMQ.Scheduler.Management”的目标上发布的生产者。 完成后,您创建一个新消息并设置一些属性并添加一个回复目的地,以便调度程序知道将消息发送到哪里。 然后您需要做的就是使用订阅该回复目的地的消费者处理消息。
Connection connection = createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the Browse Destination and the Reply To location
Destination requestBrowse = session.createTopic(ScheduledMessage.AMQ_SCHEDULER_MANAGEMENT_DESTINATION);
Destination browseDest = session.createTemporaryQueue();
// Create the "Browser"
MessageConsumer browser = session.createConsumer(browseDest);
connection.start();
// Send the browse request
MessageProducer producer = session.createProducer(requestBrowse);
Message request = session.createMessage();
request.setStringProperty(ScheduledMessage.AMQ_SCHEDULER_ACTION,
ScheduledMessage.AMQ_SCHEDULER_ACTION_BROWSE);
request.setJMSReplyTo(browseDest);
producer.send(request);
Message scheduled = browser.receive(5000);
while (scheduled != null) {
// Do something clever...
}
此博客文章中记录了其他详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.