java - 高效地发送多封电子邮件

标签 java multithreading spring email asynchronous

我已经到了必须向我的用户发送电子邮件通知的地步,因为他们已经订阅了任何事件。我的服务不大,但没有什么能阻止它成为一个,因此我想做好准备。

目前,我正在使用 Spring 的邮件发件人以相当同步的方式处理这些电子邮件(从集合中抓取一堆订阅的电子邮件地址并向他们发送邮件)但是,可以看出这种方法很快就会变得多么不可用。因此,我正在努力争取更多的并行性。

除非同时有太多线程,否则多线程可能会有所帮助。我想 |我需要类似内存中队列的东西,它可以按特定时间间隔发送成批电子邮件,打开一个新线程。完成的线程将被收集到线程池中并重新使用。

建议?也许我的方法太复杂了。也许 Spring 已经提供了一种减轻阻塞和同步的方法。我很高兴知道。

最佳答案

与其向每个用户发送一封电子邮件,不如一次向所有用户发送一封电子邮件。换句话说,制作一封邮件并将每个用户添加到目的地列表。然后您的 SMTP 服务器将担心复制它并将副本发送给每个人。

关于java - 高效地发送多封电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7559148/

相关文章:

java - 在 fragment 之间发送结果的最佳方式?

Java - JDBC executeUpdate() 不工作

Java 8 - 将 LocalDate 转换为 ZonedDateTime

java - 等待/锁定/无阻塞和OOC方法示例

java - 在 Maven 项目中查找 JUnit 5 测试

c++ - 通过 shared_ptr : ThreadSanitzier false positive? 同步

Java 在终止之前等待所有线程

java - Velocity - #springFormInput 和自定义 ID

java - 工厂方法中的依赖注入(inject)导致 NullPointerException

java - 引用 spring bean 中的一组属性