Procházet zdrojové kódy

feat:发布信息时指定信息的过期时间

yang yi před 1 měsícem
rodič
revize
f692379864

+ 12 - 1
RabbitMQ-learn/src/main/java/space/anyi/rabbitMQ_learn/ttl/Producer.java

@@ -1,5 +1,6 @@
 package space.anyi.rabbitMQ_learn.ttl;
 
+import com.rabbitmq.client.AMQP;
 import com.rabbitmq.client.Channel;
 import com.rabbitmq.client.Connection;
 import com.rabbitmq.client.ConnectionFactory;
@@ -28,8 +29,18 @@ public class Producer {
             //创建信息队列时,通过arguments设置队列的过期时间
             channel.queueDeclare(QUEUE_NAME, false, false, false, arguments);
             String message = "Hello World!";
-            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
+            //创建一个信息的额外配置,设置消息的过期时间为十秒钟
+            AMQP.BasicProperties properties = new AMQP.BasicProperties.Builder()
+                    .expiration(10*1000+"")
+                    .build();
+            //在发布信息时给特定信息指定过期时间
+            channel.basicPublish("", QUEUE_NAME, properties, message.getBytes());
             System.out.println(" [x] Sent '" + message + "'");
+            /**
+             * 总结:
+             * 给信息队列设置的过期时间对信息队列中的每一条信息都生效
+             * 给信息设置的过期时间只对这条信息生效
+             */
         }
     }
 }