我已经到了必须向我的用户发送电子邮件通知的地步,因为他们已经订阅了任何事件。我的服务不大,但没有什么能阻止它成为一个,因此我想做好准备。
目前,我正在使用 Spring 的邮件发件人以相当同步的方式处理这些电子邮件(从集合中抓取一堆订阅的电子邮件地址并向他们发送邮件)但是,可以看出这种方法很快就会变得多么不可用。因此,我正在努力争取更多的并行性。
除非同时有太多线程,否则多线程可能会有所帮助。我想 |我需要类似内存中队列的东西,它可以按特定时间间隔发送成批电子邮件,打开一个新线程。完成的线程将被收集到线程池中并重新使用。
建议?也许我的方法太复杂了。也许 Spring 已经提供了一种减轻阻塞和同步的方法。我很高兴知道。
最佳答案
与其向每个用户发送一封电子邮件,不如一次向所有用户发送一封电子邮件。换句话说,制作一封邮件并将每个用户添加到目的地列表。然后您的 SMTP 服务器将担心复制它并将副本发送给每个人。
关于java - 高效地发送多封电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7559148/