Browse Source

项目变动发送消息

master
jianjun 4 years ago
parent
commit
0cc8b9b3a9
  1. 6
      epmet-commons/epmet-commons-rocketmq/pom.xml
  2. 17
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java
  3. 6
      epmet-module/epmet-message/epmet-message-client/pom.xml
  4. 5
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java
  5. 69
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java

6
epmet-commons/epmet-commons-rocketmq/pom.xml

@ -17,5 +17,9 @@
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
</project>
</project>

17
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/ProjectChangedMQMsg.java

@ -0,0 +1,17 @@
package com.epmet.commons.rocketmq.messages;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
/**
* desc项目变动通知消息实体类
* @author liujianjun
*/
@Data
@AllArgsConstructor
public class ProjectChangedMQMsg implements Serializable {
private String customerId;
}

6
epmet-module/epmet-message/epmet-message-client/pom.xml

@ -26,6 +26,12 @@
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-rocketmq</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

5
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java

@ -10,4 +10,9 @@ public interface SystemMessageType {
*/
String INIT_CUSTOMER = "init_customer";
/**
* 项目变动
*/
String PROJECT_CHANGED = "project_changed";
}

69
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java

@ -0,0 +1,69 @@
package com.epmet.send;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SystemMessageType;
import com.epmet.dto.form.SystemMsgFormDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import lombok.extern.slf4j.Slf4j;
/**
* desc: 发送mq消息直接到rocketMq 系统
*
* @author: LiuJanJun
* @date: 2021/4/23 2:39 下午
* @versio: 1.0
*/
@Slf4j
public class SendMqMsgUtil {
private static final SendMqMsgUtil INSTANCE = new SendMqMsgUtil();
private SendMqMsgUtil() {
}
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
public static SendMqMsgUtil build() {
return INSTANCE;
}
public SendMqMsgUtil openFeignClient(EpmetMessageOpenFeignClient epmetMessageOpenFeignClient) {
this.epmetMessageOpenFeignClient = epmetMessageOpenFeignClient;
return this;
}
/**
* desc: 发送小组成就消息,计算小组成就
*
* @param msgContent
* @return boolean
* @author LiuJanJun
* @date 2021/4/23 3:01 下午
* @remark 失败重试1次,调用端自行判断如果失败是否要继续执行
*/
public boolean sendProjectChangedMqMsg(ProjectChangedMQMsg msgContent) {
try {
SystemMsgFormDTO systemMsgFormDTO = new SystemMsgFormDTO();
systemMsgFormDTO.setMessageType(SystemMessageType.PROJECT_CHANGED);
systemMsgFormDTO.setContent(msgContent);
Result sendMsgResult = null;
log.info("sendProjectChangedMqMsg param:{}",msgContent);
int retryTime = 0;
do {
sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(systemMsgFormDTO);
} while ((sendMsgResult == null || !sendMsgResult.success()) && retryTime++ < NumConstant.TWO);
if (sendMsgResult != null && sendMsgResult.success()) {
return true;
}
log.error("发送(项目变动)系统消息到message服务失败:{},msg:{}", JSON.toJSONString(sendMsgResult), JSON.toJSONString(systemMsgFormDTO));
} catch (Exception e) {
log.error("sendMqMsg exception", e);
}
return false;
}
}
Loading…
Cancel
Save