我在持久QPID队列上有2个消息使用者。这些消息使用者是使用以下代码创建的(以下示例中我不包括异常处理,以保持话题):
class MessageConsumer {
private Session session;
private Queue queue;
private final MessageListener listener;
private final ConditionProvider condition; //can be used to modify the selection string if needed
public MessageConsumer(ConnectionFactory connectionFactory, String queueName, MessageListener listener, ConditionProvider condition) {
session = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
queue = session.createQueue(queueName);
}
//Wakes up every minute and processes messages for the given condition
@Scheduled(fixedRateString = "60000", initialDelay = 1000)
public void listen() {
if (messageConsumer != null) {
messageConsumer.close();
}
messageConsumer = session.createConsumer(queue, condition.getCondition());
messageConsumer.setMessageListener(listener);
}
示例:
我现在想添加一个附加功能,即如果我知道未处理消息的原因已解决,则强制排空队列。
什么是有效的选择?
感谢您的帮助。