mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	mq 重构:默认的 mq 实现,采用 event,减少对 redis、rocketmq 等消息队列的依赖
This commit is contained in:
		@@ -6,9 +6,9 @@ tenant-id: {{adminTenentId}}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  "templateCode": "test_01",
 | 
			
		||||
  "mobile": "156016913900",
 | 
			
		||||
  "params": {
 | 
			
		||||
    "key01": "value01",
 | 
			
		||||
    "key02": "value02"
 | 
			
		||||
  "mobile": "15601691390",
 | 
			
		||||
  "templateParams": {
 | 
			
		||||
    "operation": "value01",
 | 
			
		||||
    "code": "value02"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.mq.consumer.mail;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener;
 | 
			
		||||
import cn.iocoder.yudao.module.system.mq.message.mail.MailSendMessage;
 | 
			
		||||
import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
 | 
			
		||||
import cn.iocoder.yudao.module.system.service.mail.MailSendService;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.context.event.EventListener;
 | 
			
		||||
import org.springframework.scheduling.annotation.Async;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
@@ -16,12 +16,13 @@ import javax.annotation.Resource;
 | 
			
		||||
 */
 | 
			
		||||
@Component
 | 
			
		||||
@Slf4j
 | 
			
		||||
public class MailSendConsumer extends AbstractStreamMessageListener<MailSendMessage> {
 | 
			
		||||
public class MailSendConsumer {
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private MailSendService mailSendService;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @EventListener
 | 
			
		||||
    @Async // Spring Event 默认在 Producer 发送的线程,通过 @Async 实现异步
 | 
			
		||||
    public void onMessage(MailSendMessage message) {
 | 
			
		||||
        log.info("[onMessage][消息内容({})]", message);
 | 
			
		||||
        mailSendService.doSendMail(message);
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,9 @@ package cn.iocoder.yudao.module.system.mq.consumer.sms;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
 | 
			
		||||
import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
 | 
			
		||||
import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.context.event.EventListener;
 | 
			
		||||
import org.springframework.scheduling.annotation.Async;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
@@ -15,12 +16,13 @@ import javax.annotation.Resource;
 | 
			
		||||
 */
 | 
			
		||||
@Component
 | 
			
		||||
@Slf4j
 | 
			
		||||
public class SmsSendConsumer extends AbstractStreamMessageListener<SmsSendMessage> {
 | 
			
		||||
public class SmsSendConsumer {
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private SmsSendService smsSendService;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @EventListener
 | 
			
		||||
    @Async // Spring Event 默认在 Producer 发送的线程,通过 @Async 实现异步
 | 
			
		||||
    public void onMessage(SmsSendMessage message) {
 | 
			
		||||
        log.info("[onMessage][消息内容({})]", message);
 | 
			
		||||
        smsSendService.doSendSms(message);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.mq.message.mail;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessage;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.EqualsAndHashCode;
 | 
			
		||||
 | 
			
		||||
import javax.validation.constraints.NotEmpty;
 | 
			
		||||
import javax.validation.constraints.NotNull;
 | 
			
		||||
@@ -13,8 +11,7 @@ import javax.validation.constraints.NotNull;
 | 
			
		||||
 * @author 芋道源码
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
public class MailSendMessage extends AbstractStreamMessage {
 | 
			
		||||
public class MailSendMessage {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 邮件日志编号
 | 
			
		||||
@@ -47,9 +44,4 @@ public class MailSendMessage extends AbstractStreamMessage {
 | 
			
		||||
    @NotEmpty(message = "邮件内容不能为空")
 | 
			
		||||
    private String content;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getStreamKey() {
 | 
			
		||||
        return "system.mail.send";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,7 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.mq.message.sms;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.common.core.KeyValue;
 | 
			
		||||
import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessage;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.EqualsAndHashCode;
 | 
			
		||||
 | 
			
		||||
import javax.validation.constraints.NotNull;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@@ -14,8 +12,7 @@ import java.util.List;
 | 
			
		||||
 * @author 芋道源码
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
@EqualsAndHashCode(callSuper = true)
 | 
			
		||||
public class SmsSendMessage extends AbstractStreamMessage {
 | 
			
		||||
public class SmsSendMessage {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 短信日志编号
 | 
			
		||||
@@ -42,9 +39,4 @@ public class SmsSendMessage extends AbstractStreamMessage {
 | 
			
		||||
     */
 | 
			
		||||
    private List<KeyValue<String, Object>> templateParams;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getStreamKey() {
 | 
			
		||||
        return "system.sms.send";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.mq.producer.mail;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;
 | 
			
		||||
import cn.iocoder.yudao.module.system.mq.message.mail.MailSendMessage;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.context.ApplicationContext;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
@@ -18,7 +18,7 @@ import javax.annotation.Resource;
 | 
			
		||||
public class MailProducer {
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private RedisMQTemplate redisMQTemplate;
 | 
			
		||||
    private ApplicationContext applicationContext;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 发送 {@link MailSendMessage} 消息
 | 
			
		||||
@@ -35,7 +35,7 @@ public class MailProducer {
 | 
			
		||||
        MailSendMessage message = new MailSendMessage()
 | 
			
		||||
                .setLogId(sendLogId).setMail(mail).setAccountId(accountId)
 | 
			
		||||
                .setNickname(nickname).setTitle(title).setContent(content);
 | 
			
		||||
        redisMQTemplate.send(message);
 | 
			
		||||
        applicationContext.publishEvent(message);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.mq.producer.sms;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.common.core.KeyValue;
 | 
			
		||||
import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;
 | 
			
		||||
import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.context.ApplicationContext;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
@@ -20,7 +20,7 @@ import java.util.List;
 | 
			
		||||
public class SmsProducer {
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private RedisMQTemplate redisMQTemplate;
 | 
			
		||||
    private ApplicationContext applicationContext;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 发送 {@link SmsSendMessage} 消息
 | 
			
		||||
@@ -35,7 +35,7 @@ public class SmsProducer {
 | 
			
		||||
                                   Long channelId, String apiTemplateId, List<KeyValue<String, Object>> templateParams) {
 | 
			
		||||
        SmsSendMessage message = new SmsSendMessage().setLogId(logId).setMobile(mobile);
 | 
			
		||||
        message.setChannelId(channelId).setApiTemplateId(apiTemplateId).setTemplateParams(templateParams);
 | 
			
		||||
        redisMQTemplate.send(message);
 | 
			
		||||
        applicationContext.publishEvent(message);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user