rabbitMQ延时队列

rabbitMQ延时队列之RabbitTemplate

直接撸代码

//定义交换机/队列;并绑定 routingKey
	/**
	*定义延时交换机
	*/
    @Bean
    public CustomExchange delayedExchange() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("x-delayed-type", "direct");
        return new CustomExchange("delayed_exchange", "x-delayed-message", true, false, map);
    }
	/**
	*定义延时队列
	*/
	@Bean
	public Queue delayedQueue(){
		return new Queue("delayed_queue",true);
	}


	/**
	*绑定队列
	*/
	@Bean
	public Binding queueBinding(){
		return BindingBuilder.bind(delayedQueue()).to(delayedExchange()).with("delayed_routingKey").noargs();
	}

//发送延时消息方法

	/**
	*此处使用的header,所以延时支持Long
	*@param delayedTime 延时时间,毫秒值
	*/
	public void sendDelayedMessage(String exchange,String routingKey,Long delayedTime,String msg){
		rabbitTemplate.convertAndSend(exchange,routingKey,msg,message->{
		message.getMessageProperties().setHeader("x_delay",delayedTime);
		return message;
	});
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值