我有一个使用RabbitMQ的Spring Boot应用程序。我可以将消息成功发送到队列。我也可以检索消息。但是,当我检索它们时,该消息不会从队列中删除。这样一来,我收到的信息就会一遍又一遍地不断收到相同的邮件列表。
问题
收到邮件后可以删除邮件吗?
代码
接收器 @Component
public class RabbitMQReceiver {
@Autowired
private PhotoStatusProcessorService photoStatusProcessorService;
@RabbitListener(queues = "${rabbitmq.queuename}")
public void receive(UUID in) {
System.out.println("Received RabbitMQ msg = " + in);
photoStatusProcessorService.processPhotoForId(in);
}
}
配置
@Configuration
public class RabbitMQConfig {
@Value("${rabbitmq.queuename}")
String queueName;
// @Value("${rabbitmq.exchangename}")
// String exchange;
//
// @Value("${rabbitmq.routingkeyname}")
// String routingkey;
@Bean
Queue queue() {
return new Queue(queueName, false);
}
// @Bean
// DirectExchange exchange() {
// return new DirectExchange(exchange);
// }
//
// @Bean
// Binding binding(Queue queue, DirectExchange exchange) {
// return BindingBuilder.bind(queue).to(exchange).with(routingkey);
// }
@Profile("receiver")
@Bean
public RabbitMQReceiver receiver() {
return new RabbitMQReceiver();
}
}
application.properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=rabbitmq
spring.rabbitmq.password=****
rabbitmq.exchangename=photo-proccessor.exchange
rabbitmq.queuename=photo-proccessor
rabbitmq.routingkeyname=photo-proccessor.routingkey
YML文件
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3.7-management-alpine
ports:
- 15672:15672
- 5672:5672
environment:
RABBITMQ_ERLANG_COOKIE: "secretcookie"
RABBITMQ_DEFAULT_USER: ${AMQP_USERNAME}
RABBITMQ_DEFAULT_PASS: ${AMQP_PASSWORD}
输出
Received RabbitMQ msg = 9e24ec47-620b-4b93-833c-834a54d98ff8
Received RabbitMQ msg = 7e0e9aa6-f1d0-4154-abe1-617faa64a5fe
Received RabbitMQ msg = 3ade07c3-5f45-4aac-8054-0132bc85880b
Received RabbitMQ msg = 33645c35-a001-4c2c-a6f4-e3b96d3dc974
Received RabbitMQ msg = dcebdc77-6ddc-468e-978e-3714314a1abc
Received RabbitMQ msg = b7428adb-6356-4fd6-9ed1-c298886d95e8
Received RabbitMQ msg = 9e24ec47-620b-4b93-833c-834a54d98ff8
Received RabbitMQ msg = 7e0e9aa6-f1d0-4154-abe1-617faa64a5fe
Received RabbitMQ msg = 3ade07c3-5f45-4aac-8054-0132bc85880b
Received RabbitMQ msg = 33645c35-a001-4c2c-a6f4-e3b96d3dc974
Received RabbitMQ msg = dcebdc77-6ddc-468e-978e-3714314a1abc
Received RabbitMQ msg = b7428adb-6356-4fd6-9ed1-c298886d95e8
Received RabbitMQ msg = 9e24ec47-620b-4b93-833c-834a54d98ff8
Received RabbitMQ msg = 7e0e9aa6-f1d0-4154-abe1-617faa64a5fe
Received RabbitMQ msg = 3ade07c3-5f45-4aac-8054-0132bc85880b
Received RabbitMQ msg = 33645c35-a001-4c2c-a6f4-e3b96d3dc974
Received RabbitMQ msg = dcebdc77-6ddc-468e-978e-3714314a1abc
Received RabbitMQ msg = b7428adb-6356-4fd6-9ed1-c298886d95e8
Received RabbitMQ msg = 9e24ec47-620b-4b93-833c-834a54d98ff8
Received RabbitMQ msg = 7e0e9aa6-f1d0-4154-abe1-617faa64a5fe
Received RabbitMQ msg = 3ade07c3-5f45-4aac-8054-0132bc85880b
Received RabbitMQ msg = 33645c35-a001-4c2c-a6f4-e3b96d3dc974
Received RabbitMQ msg = dcebdc77-6ddc-468e-978e-3714314a1abc
..... forever