我希望每次将新课程添加到lessons
表中时,都会向该年级的所有学生发送通知。假设我五年级有 10,000 名学生,这意味着将在notifications
表中进行 10,000 次插入操作,这是一个巨大的负担。
在知道用户只能看到一次通知的情况下,是否有更好的方法向用户发送通知。
似乎通知过程可以异步进行。
我建议为这种情况开发一个单独的消息队列架构。一个程序将加载新添加的数据并将它们放入队列中,然后另一个进程可以读取队列并(例如向用户发送电子邮件)。您可以添加更多队列消费者来管理更多海量数据。当然,您将需要一个 MQ 服务器。
要了解异步开发的内容,请参阅http://www.rabbitmq.com/getstarted.html,其中包含 Rabbit MQ 的好示例(Rabbit MQ 是一个开源 Java 基础消息传递服务)。