0

我的应用程序发送电子邮件。我现在:

  1. 从数据库(对象)中获取客户列表
  2. 从数据库中获取他们的电子邮件类型列表(同上)
  3. 从数据库中获取电子邮件收件人/唯一数据的列表(再次)
  4. 使用上面的数据生成邮件
  5. 在记录 smtp 状态时循环浏览邮件并发送出去

现在,当您发送 500 封电子邮件时,这种行为很好,但如果是 10,000 多封电子邮件,会有什么影响?我想在某些时候我存储的对象数量直到我到达第 5 步是相当可观的。我如何衡量它以知道我正在接近容量?我想我至少可以对整个场景进行计时,以了解它何时成为系统的拖累需要多长时间作为线索。

以每个客户为基础运行此方案会更好吗?似乎效率会降低,可能会击中数据库数百次而不是 3 次左右。我知道日志记录将是对数据库的一次点击。

我正在寻找一种方法,而不是代码解析。上次我没有具体说明时遇到了麻烦。

4

1 回答 1

1

我想这取决于几件事,例如您的系统有多大/强大(数据库容量,处理/内存等等?),以及快速发送这些邮件的重要性等等。

一个想法可能是使用临时数据库表来存储步骤 1-4 中的信息。您可以分批执行此操作(如 Blogobeard 所述),也可以一次执行此操作,具体取决于效率。然后,实际的邮寄作业也可以分成几批,当发送邮件时,该客户的信息将从临时表中删除。

可能有几种方法可以对此进行微调,并且一旦您尝试了某些东西并有一些具体的结果可以采取行动,可能会更容易提供更好的建议。

于 2012-07-05T07:03:49.090 回答