| | |
| | | import cc.mrbird.febs.rabbit.constants.ExchangeConstants; |
| | | import cc.mrbird.febs.rabbit.constants.QueueConstants; |
| | | import cc.mrbird.febs.rabbit.constants.RouteKeyConstants; |
| | | import org.springframework.amqp.core.Binding; |
| | | import org.springframework.amqp.core.BindingBuilder; |
| | | import org.springframework.amqp.core.DirectExchange; |
| | | import org.springframework.amqp.core.Queue; |
| | | import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum; |
| | | import org.springframework.amqp.core.*; |
| | | import org.springframework.amqp.rabbit.connection.ConnectionFactory; |
| | | import org.springframework.amqp.rabbit.core.RabbitTemplate; |
| | | import org.springframework.beans.factory.config.ConfigurableBeanFactory; |
| | |
| | | return new RabbitTemplate(connectionFactory); |
| | | } |
| | | |
| | | |
| | | // === 延时 start === |
| | | @Bean |
| | | public DirectExchange defaultExchange() { |
| | | return new DirectExchange(ExchangeConstants.EXCHANGE_DEFAULT); |
| | | public DirectExchange delayExchangeTtl() { |
| | | return new DirectExchange(RabbitQueueEnum.CHOU_JIANG_TIME_TTL.getExchange()); |
| | | } |
| | | @Bean |
| | | public Binding orderDelayBindTtl() { |
| | | return BindingBuilder.bind(orderDelayQueueTtl()).to(delayExchangeTtl()).with(RabbitQueueEnum.CHOU_JIANG_TIME_TTL.getRoute()); |
| | | } |
| | | @Bean |
| | | public Queue orderDelayQueueTtl() { |
| | | return QueueBuilder.durable(RabbitQueueEnum.CHOU_JIANG_TIME_TTL.getQueue()) |
| | | //到期后转发的交换机 |
| | | .withArgument("x-dead-letter-exchange", RabbitQueueEnum.CHOU_JIANG_TIME.getExchange()) |
| | | //到期后转发的路由键 |
| | | .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.CHOU_JIANG_TIME.getRoute()) |
| | | .build(); |
| | | } |
| | | @Bean |
| | | public DirectExchange orderDelayExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.CHOU_JIANG_TIME.getExchange()); |
| | | } |
| | | @Bean |
| | | public Queue orderDelayQueue() { |
| | | return new Queue(RabbitQueueEnum.CHOU_JIANG_TIME.getQueue()); |
| | | } |
| | | @Bean |
| | | public Binding orderDelayBind() { |
| | | return BindingBuilder.bind(orderDelayQueue()).to(orderDelayExchange()).with(RabbitQueueEnum.CHOU_JIANG_TIME.getRoute()); |
| | | } |
| | | // === 延时 end === |
| | | |
| | | |
| | | // === 延时 start === |
| | | @Bean |
| | | public DirectExchange delayExchangeTtlNoTime() { |
| | | return new DirectExchange(RabbitQueueEnum.NO_TIME_TTL.getExchange()); |
| | | } |
| | | @Bean |
| | | public Binding orderDelayBindTtlNoTime() { |
| | | return BindingBuilder.bind(orderDelayQueueTtlNoTime()) |
| | | .to(delayExchangeTtlNoTime()) |
| | | .with(RabbitQueueEnum.NO_TIME_TTL.getRoute()); |
| | | } |
| | | @Bean |
| | | public Queue orderDelayQueueTtlNoTime() { |
| | | return QueueBuilder.durable(RabbitQueueEnum.NO_TIME_TTL.getQueue()) |
| | | //到期后转发的交换机 |
| | | .withArgument("x-dead-letter-exchange", RabbitQueueEnum.NO_TIME.getExchange()) |
| | | //到期后转发的路由键 |
| | | .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.NO_TIME.getRoute()) |
| | | .build(); |
| | | } |
| | | @Bean |
| | | public DirectExchange orderDelayExchangeNoTime() { |
| | | return new DirectExchange(RabbitQueueEnum.NO_TIME.getExchange()); |
| | | } |
| | | @Bean |
| | | public Queue orderDelayQueueNoTime() { |
| | | return new Queue(RabbitQueueEnum.NO_TIME.getQueue()); |
| | | } |
| | | @Bean |
| | | public Binding orderDelayBindNoTime() { |
| | | return BindingBuilder.bind(orderDelayQueueNoTime()) |
| | | .to(orderDelayExchangeNoTime()) |
| | | .with(RabbitQueueEnum.NO_TIME.getRoute()); |
| | | } |
| | | // === 延时 end === |
| | | |
| | | |
| | | |
| | | // === 处理中奖 start === |
| | | @Bean |
| | | public DirectExchange openPriceExchange() { |
| | | return new DirectExchange(RabbitQueueEnum.OPEN_PRICE.getExchange()); |
| | | } |
| | | |
| | | @Bean |
| | | public Queue defaultQueue() { |
| | | return new Queue(QueueConstants.QUEUE_DEFAULT); |
| | | public Queue openPriceQueue() { |
| | | return new Queue(RabbitQueueEnum.OPEN_PRICE.getQueue()); |
| | | } |
| | | |
| | | @Bean |
| | | public Binding defaultBind() { |
| | | return BindingBuilder.bind(defaultQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT); |
| | | public Binding openPriceBind() { |
| | | return BindingBuilder.bind(openPriceQueue()).to(openPriceExchange()).with(RabbitQueueEnum.OPEN_PRICE.getRoute()); |
| | | } |
| | | // === 处理中奖 end === |
| | | |
| | | } |