外观
MQ消息
配置
目前支持的消息队列类型有:
- redis :redis消息队列
- jms :java消息队列
- synchronous :同步方式消息
- discard:丢弃消息
在yml中配置:ab:simple-mq:message-queue-type:
扩展新的队列类型
MQ模块以组件化的形式在ab-component
模块中
- 在枚举
com.dstz.component.mq.engine.config.AbMessageQueueType
中添加新的消息类型并增加对应的装配 - 增加对应生产者类、 实现
com.dstz.component.mq.api.producer.JmsProducer
接口中的发送消息方法 - 增加对应消费者类、 继承公共消息队列抽象类
com.dstz.component.mq.engine.consumer.AbstractMessageQueue
实现新的消费者消息处理
MQ消息的具体业务消息实现
目前消息的具体业务实现有:
- 邮件发送
- 站内消息发送
- 手机短消息发送
- 钉钉消息发送
- 企业微信消息发送
- 微信公众号消息发送
后端调用消息发送接口
com.dstz.component.msg.api.MsgApi
void sendMsg(MsgDTO msgDTO)
MsgDTO属性列表
名称 | 描述 | 参数类型 | 必填 |
---|---|---|---|
subject | 消息标题 | String | 是 |
templateCode | 模板编码 | String | 是 |
templateParam | 模板参数 | String | 否 |
receivers | 消息的接收者 | List<SysIdentity> | 是 |
businessId | 业务id,发送站内信所需参数 | String | 否 |
innerMsgType | 业务类型发送站内信所需参数 | String | 否 |
msgType | 消息实现的具体类型,如email | List | 是 |
object | 系统可用参数 | Object | 否 |
extendVars | 扩展参数 | map | 否 |
void sendMsg(List<MsgDTO> msgDTOList
)
批量发送
批量发送和单条发送参数dto一样,只是需要传入list,可以批量发送消息
业务消息扩展
新增一种业务消息,比如飞书消息,或者推送到其他系统
- 在
ab-component-msg-engine
模块 新增业务消息handler
该handler需要继承com.dstz.component.mq.msg.engine.handler.AbsNotifyMessageHandler
然后重写对应方法即可
前端 ab-msg-type
组件 即可使用新增的业务消息类型
如下图所示: