【问题标题】:Sending multiple emails efficiently高效发送多封电子邮件
【发布时间】:2011-09-26 17:55:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你可能会在 SO.programmers 上得到更好的答案
  • 你的瓶颈几乎不会是 CPU。换句话说,不用担心代码效率。

标签: java multithreading spring email asynchronous


【解决方案1】:

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

【讨论】:

  • 但不要将它们都设置为普通的To: 收件人,否则每个人都会看到每个人的电子邮件地址。如果这样做,请将收件人设置为Bcc
  • 嗯...听起来很简单,这可能行得通。唯一的限制是我将无法自定义电子邮件,例如输入用户的用户名等......但此时这并不重要。
猜你喜欢
  • 2011-02-08
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
相关资源
最近更新 更多