我需要为自制的ERP系统设计通知系统,在不同的情况发生时向用户发送通知 . 当前系统很简单,因为它可能是:如果发生了某些事情(例如用户在用户配置文件中更改了其电话号码),则会向会计师发送电子邮件 . 这有一些缺点:

  • 如果用户改变了两次,会计将收到两封电子邮件 .

  • 如果用户在周六午夜更改了某些内容,会计将在不合理的时间收到电子邮件 .

所以,我需要设计延迟发送的东西(并不总是,一些警报必须立即来),解决方案也必须能够分组消息,因此可以用一封电子邮件发送多条消息 .

我的数据库设计看起来像这样:
Database design

如果事件表包含带占位符的预定义事件文本,则event_transport表定义可用传输(电子邮件,SMS,推送),event_priority表包含优先级规则(如果事件可以立即发送,允许,小时等) .

相信工作流程 .
workflow

所以,我需要帮助红圈内的步骤,我不清楚如何实现它 . 当然,我需要一个包含所有准备发送的消息的队列表 . 在这里,我卡住了 .

任何想法如何实现优先级和传输感知发送队列?

谢谢你的关注 .