繁体   English   中英

活动 MQ 计划作业 ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM