gpt4 book ai didi

java - 如何从 RabbitMQ 队列中删除消息

转载 作者:行者123 更新时间:2023-12-02 08:52:34 31 4
gpt4 key购买 nike

我正在使用 Rabbit MQ 来复制 Jenkins 的功能。我面临的唯一问题是,比如说,当队列中有 10 条消息时。并且有一些处于未确认状态的重复消息。我需要从队列中删除这些消息,如何实现?

我的rabbitmq配置如下,每个队列只有一个消费者。因此,如果我有 10 条消息,所有消息都将通过同一消费者的线程进行处理。

Queue queue = new Queue(sfdcConnectionDetails.getGitRepoId() + "_" + sfdcConnectionDetails.getBranchConnectedTo(), true);
rabbitMqSenderConfig.amqpAdmin().declareQueue(queue);
rabbitMqSenderConfig.amqpAdmin().declareBinding(BindingBuilder.bind(queue).to(new DirectExchange(byRepositoryRepositoryId.getRepository().getRepositoryId())).withQueueName());
RabbitMqConsumer container = new RabbitMqConsumer();
container.setConnectionFactory(rabbitMqSenderConfig.connectionFactory());
container.setQueueNames(queue.getName());
container.setConcurrentConsumers(1);
container.setMessageListener(new MessageListenerAdapter(new ConsumerHandler(****, ***), new Jackson2JsonMessageConverter()));
container.startConsumers();

最佳答案

  1. 您可以使用任何插件(例如 this )在兔子端删除重复消息。
  2. 在使用者上使用缓存来检测最近是否正在处理同一条消息。

关于java - 如何从 RabbitMQ 队列中删除消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60690349/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com