lingdongfeixue 2016-08-18 10:03 采纳率: 0%
浏览 2007
已结题

spring rabbitmq 延迟队列

spring集成rabbitMQ,使用amqpTemplate操作rabbitmq,但是在现在有业务场景需要有队列中的消息能延迟消费,不知道这一块如何配置和操作,有人给点思路吧

  • 写回答

1条回答 默认 最新

  • u010243141 2016-08-19 08:15
    关注

    我在做的一个项目再用rabbitMq,下面是代码,当时没有用配置,好像是用配置文件时有问题,你可以参考下

    /**

    • RabbitMQ配置.
      */
      @Configuration
      public class RabbitConfiguration implements RabbitListenerConfigurer {

      private static final Logger log = LoggerFactory.getLogger(RabbitConfiguration.class);

      @Bean
      Queue queueFacebookQuery() {
      return new Queue(QueueName. _QUERY, true);
      }

      @Bean
      Queue queueFacebookResult() {
      return new Queue(QueueName. _RESULT, true);
      }

      @Bean
      DirectExchange exchange() {
      return new DirectExchange(QueueName.EXCHANGE);
      }

      @Bean
      Binding bindingQueue Query(Queue queue Query, DirectExchange exchange) {
      return BindingBuilder.bind(queue Query).to(exchange).with(QueueName. _QUERY);
      }

      @Bean
      Binding bindingQueue Result(Queue queue Result, DirectExchange exchange) {
      return BindingBuilder.bind(queue Result).to(exchange).with(QueueName. _RESULT);
      }

      @Bean
      public MappingJackson2MessageConverter jackson2Converter() {
      return new MappingJackson2MessageConverter();
      }

      @Bean
      public DefaultMessageHandlerMethodFactory myHandlerMethodFactory() {
      DefaultMessageHandlerMethodFactory factory = new DefaultMessageHandlerMethodFactory();
      factory.setMessageConverter(jackson2Converter());
      return factory;
      }

      @Override
      public void configureRabbitListeners(RabbitListenerEndpointRegistrar registrar) {
      registrar.setMessageHandlerMethodFactory(myHandlerMethodFactory());
      }

      @Bean
      public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(
      SimpleRabbitListenerContainerFactoryConfigurer configurer,
      ConnectionFactory connectionFactory,
      CustomErrorHandler customErrorHandler
      ) {
      SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();

      factory.setErrorHandler(customErrorHandler);
      log.info("TLQ00960: factory -----> " + factory);
      configurer.configure(factory, connectionFactory);
      return factory;
      

      }

      @Bean
      public StatefulRetryOperationsInterceptor interceptor() {
      return RetryInterceptorBuilder.stateful()
      .maxAttempts(5)
      .backOffOptions(60000, 2.0, 200000) // initialInterval, multiplier, maxInterval
      .build();
      }
      }

    评论

报告相同问题?

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图