Browse Source

【修改】mq

zhuzhoutong 4 years atrás
parent
commit
ea1f515aec

+ 0 - 1
framework-starter/mrxu-starter-redisson/pom.xml

@@ -21,7 +21,6 @@
         <dependency>
         <dependency>
             <groupId>com.mrxu</groupId>
             <groupId>com.mrxu</groupId>
             <artifactId>framework-boot</artifactId>
             <artifactId>framework-boot</artifactId>
-            <version>1.0-SNAPSHOT</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>org.redisson</groupId>
             <groupId>org.redisson</groupId>

+ 31 - 0
framework-starter/mrxu-starter-rocketmq/pom.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.mrxu</groupId>
+        <artifactId>mrxu-upgrader</artifactId>
+        <version>1.0-SNAPSHOT</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>com.mrxu</groupId>
+    <artifactId>mrxu-starter-rocketmq</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>mrxu-starter-rocketmq</name>
+    <description>mrxu starter</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.mrxu</groupId>
+            <artifactId>framework-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.rocketmq</groupId>
+            <artifactId>rocketmq-spring-boot-starter</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 8 - 0
framework-starter/mrxu-starter-rocketmq/src/main/java/com/mrxu/framework/starter/rocketmq/README.txt

@@ -0,0 +1,8 @@
+## 使用配置rocketmq
+rocketmq:
+    name-server: http://127.0.0.1:9876 #rocketmq服务地址
+    producer:
+        group: rocketmq_test #自定义的组名称
+        access-key: rocketmq2
+        secret-key: 12345678
+        send-message-timeout: 3000 #消息发送超时时长

+ 76 - 0
framework-starter/mrxu-starter-rocketmq/src/main/java/com/mrxu/framework/starter/rocketmq/RocketMQSender.java

@@ -0,0 +1,76 @@
+package com.mrxu.framework.starter.rocketmq;
+
+import org.apache.rocketmq.client.producer.SendCallback;
+import org.apache.rocketmq.spring.core.RocketMQTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.messaging.support.MessageBuilder;
+import org.springframework.stereotype.Service;
+
+/**
+ * 功能概要:[] <br>
+ *
+ * @author 上研院 zhuzhoutong
+ * @date 2021/11/17
+ */
+@Service
+public class RocketMQSender {
+
+    /**
+     * rockemq template
+     */
+    @Autowired
+    private RocketMQTemplate rocketMQTemplate;
+
+    /**
+     * 默认超时时间
+     */
+    @Value("${rocketmq.producer.send-message-timeout:3000}")
+    private Long messageTimeOut;
+
+    /**
+     * 发送普通消息
+     * @param destination 发送队列
+     * @param message 发送内容
+     */
+    public void sendMsg(String destination, Object message){
+        this.sendMsg(destination,message);
+    }
+
+    /**
+     * 发送消息
+     * @param destination 队列
+     * @param message 消息
+     * @param timeOut 超时
+     */
+    public void sendMsg(String destination, Object message,Long timeOut){
+        rocketMQTemplate.syncSend(destination,MessageBuilder.withPayload(message).build(),timeOut);
+    }
+
+    /**
+     * 发送异步消息 在SendCallback中可处理相关成功失败时的逻辑
+     */
+    public void sendAsyncMsg(String destination, Object message,SendCallback sendCallback){
+        this.sendAsyncMsg(destination,message,sendCallback,messageTimeOut);
+    }
+
+    /**
+     * 异步发送消息
+     * @param destination 队列
+     * @param message 消息
+     * @param sendCallback 回调
+     * @param timeOut 超时
+     */
+    public void sendAsyncMsg(String destination, Object message,SendCallback sendCallback,Long timeOut){
+        rocketMQTemplate.asyncSend(destination,message,sendCallback,timeOut);
+    }
+
+    /**
+     * 发送延时消息<br/>
+     * 在start版本中 延时消息一共分为18个等级分别为:1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h<br/>
+     */
+    public void sendDelayMsg(String destination, Object msgBody, Integer delayLevel){
+        rocketMQTemplate.syncSend(destination,MessageBuilder.withPayload(msgBody).build(),messageTimeOut,delayLevel);
+    }
+
+}

+ 1 - 0
framework-starter/pom.xml

@@ -19,5 +19,6 @@
 
 
     <modules>
     <modules>
         <module>mrxu-starter-redisson</module>
         <module>mrxu-starter-redisson</module>
+        <module>mrxu-starter-rocketmq</module>
     </modules>
     </modules>
 </project>
 </project>