我知道這是可能使SimpleMessageListenerContainer
豆在這裏設置的預取數和消息監聽器,像這樣:是否可以設置預取數上@RabbitListener
@Bean
public SimpleMessageListenerContainer messageListenerContainer(
ConnectionFactory rabbitConnectionFactory,
Receiver receiver) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(rabbitConnectionFactory);
container.setQueueNames("hello");
container.setMessageListener(new MessageListenerAdapter(receiver, "receive"));
container.setPrefetchCount(1000);
return container;
}
但如何設置通道,如果預取數我想用聲明式方法使用@RabbitListener
?
@Component
public class Receiver {
private static final Logger log = LoggerFactory.getLogger(Receiver.class);
@RabbitListener(queues = "hello") // how to set prefetch count here?
public void receive(String message) {
log.info(" [x] Received '{}'.", message);
}
}
這是不可能的?
如果你正在使用由Spring啓動創建的默認容器廠,你可以設置application.yml或application.properties財產 - 看'[引導性附錄](HTTP spring.rabbitmq.listener.prefetch': //docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-application-properties)。 –