![](/img/trans.png)
[英]How to requeue a message to the Back of a Rabbit MQ Queue via Spring
[英]How to publish message to rabbit MQ(queue details provided at runtime) using springboot?
如何將消息發布到在運行時提供隊列詳細信息的rabbit MQ。
有很多關於發布消息的文章,但在應用程序屬性文件中提到了隊列。
如果你的意思是在運行時設置的隊列名稱,您可以發送郵件使用RabbitTemplate
類和convertAndSend
方法。 ( 參考)
假設你的類是這樣的:
@Component
public class MessageSender {
@Autowired
private RabbitTemplate rabbitTemplate;
...
}
您可以添加這些方法:
public void sendToQueue(String queueName) {
rabbitTemplate.convertAndSend(queueName, "Hello from Spring!");
}
public void sendToExchange(String exchangeName, String routingKey) {
rabbitTemplate.convertAndSend(exchangeName, routingKey, "Hi exchange!");
}
但是,如果您指的是在運行時創建隊列本身,那么您需要一個AmqpAdmin作為@Autowired
(推薦)或在每次調用中定義它。
@Autowired
private AmqpAdmin amqpAdmin;
在任何方法中,您都可以創建一個帶有所需參數的 Queue 對象(名稱、持久性......其他任何東西)
像這樣的東西:
Queue queue = new Queue(queueName, ...);
amqpAdmin.declareQueue(queue);
如果你想使用@Autowired
你必須像這樣在@Bean
創建amqpAdmin
:
@Bean
public AmqpAdmin amqpAdmin() {
return new RabbitAdmin(yourConnectionFactory);
}
也解釋here
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.