使用Redis实现邮件通知的流程说明
1. 概述
本系统使用Redis作为消息队列实现异步邮件通知功能,采用生产者-消费者模式,确保邮件发送不阻塞主业务流程,提高系统响应速度和用户体验。
2. 系统架构
系统主要由以下几个组件构成:
- ApprovalNotifyProducer: 消息生产者,负责创建并发送审批通知消息到Redis队列
- RedisQueueService: Redis队列服务,封装了Redis队列操作
- RedisMessageQueueListener: Redis消息队列监听器,负责监听队列并分发消息
- EmailNotifyConsumer: 邮件通知消费者,负责处理消息并发送邮件
- FailedNotifyRetryJob: 失败通知重试定时任务,处理失败的消息
3. 实现流程
3.1 消息生产流程
- 当系统需要发送审批通知时(如审批通过、退回等),业务代码调用
ApprovalNotifyProducer.sendApprovalPassedNotify()
方法 - 生产者创建
ApprovalNotifyMessage
消息对象,包含业务单号、业务模块、审批状态、用户信息等 - 通过
RedisQueueService.pushApprovalNotify()
方法将消息推送到Redis队列中
3.2 消息消费流程
Re