您现在的位置是:亿华云 > 数据库

RabbitMQ 死信机制真的可以作为延时任务这个场景的解决方案吗?

亿华云2025-10-09 03:49:28【数据库】3人已围观

简介复制@Configuration` publicclassRabbitBindConfig{` ublicfinalstaticStringSKYPYB_O

RabbitMQ 死信机制真的可以作为延时任务这个场景的解决方案吗?
复制@Configuration`  public class RabbitBindConfig { `  ublic final static String SKYPYB_ORDINARY_EXCHANGE = "skypyb-ordinary-exchange";`  ublic final static String SKYPYB_DEAD_EXCHANGE = "skypyb-dead-exchange";`  ublic final static String SKYPYB_ORDINARY_QUEUE_1 = "skypyb-ordinary-queue";`  public final static String SKYPYB_DEAD_QUEUE = "skypyb-dead-queue";`  public final static String SKYPYB_ORDINARY_KEY = "skypyb.key.ordinary.one";`  public final static String SKYPYB_DEAD_KEY = "skypyb.key.dead";`  @Bean`  public DirectExchange ordinaryExchange() { `  return new DirectExchange(SKYPYB_ORDINARY_EXCHANGE,死信时任 false, true);`  }`  @Bean`  public DirectExchange deadExchange() { `  return new DirectExchange(SKYPYB_DEAD_EXCHANGE, false, true);`  }`  @Bean`  public Queue ordinaryQueue() { `  Map arguments = new HashMap<>();`  //TTL 5s`  arguments.put("x-message-ttl", 1000 * 5);`  // 绑定死信队列和死信交换机`  arguments.put("x-dead-letter-exchange", SKYPYB_DEAD_EXCHANGE);`  arguments.put("x-dead-letter-routing-key", SKYPYB_DEAD_KEY);`  return new Queue(SKYPYB_ORDINARY_QUEUE_1, false, false, true, arguments);`  }`  @Bean`  public Queue deadQueue() { `  return new Queue(SKYPYB_DEAD_QUEUE, false, false, true);`  }`  @Bean`  public Binding bindingOrdinaryExchangeAndQueue() { `  return BindingBuilder.bind(ordinaryQueue()).to(ordinaryExchange()).with(SKYPYB_ORDINARY_KEY);`  }`  @Bean`  public Binding bindingDeadExchangeAndQueue() { `  return BindingBuilder.bind(deadQueue()).to(deadExchange()).with(SKYPYB_DEAD_KEY);`  }`  }`  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.

很赞哦!(12831)