Qing 1 жил өмнө
parent
commit
c48b6e1877

+ 33 - 0
rabbitmq-demo/src/main/java/com/sf/queue/Producer.java

@@ -0,0 +1,33 @@
+package com.sf.queue;
+
+import com.rabbitmq.client.AMQP;
+import com.rabbitmq.client.Channel;
+import com.sf.util.MqUtils;
+
+import java.util.HashMap;
+import java.util.Scanner;
+
+public class Producer {
+
+    private final static String QUEUE_NAME = "hello";
+
+    public static void main(String[] args) throws Exception {
+        Channel channel = MqUtils.getChannel();
+        // 定义队列支持的最大级别
+        HashMap<String, Object> arguments = new HashMap<>();
+        arguments.put("x-max-priority", 10);
+        // 官方允许是0~255之间,此处设置为10,即允许优先级范围从0~10(不要设置过大以免浪费cpu和内存)
+        channel.queueDeclare(QUEUE_NAME, false, false, false, arguments);
+        Scanner scanner = new Scanner(System.in);
+        System.out.println("请输入消息:");
+        while (scanner.hasNext()) {
+            String message = scanner.next();
+            System.out.println(message);
+            // 发送消息时设置消息的优先级
+            AMQP.BasicProperties.Builder builder = new AMQP.BasicProperties().builder();
+            builder.deliveryMode(2); // 持久化消息
+            builder.priority(5);  //设置消息的优先级别
+            channel.basicPublish("", QUEUE_NAME, builder.build(), message.getBytes());
+        }
+    }
+}