通过Quartz Job发送电子邮件

时间:2011-06-15 19:51:04

标签: quartz-scheduler

我需要在注册后一周向用户发送电子邮件。什么是更好的方式:

  1. 安排每天运行的Quartz作业,并获取一周前注册的用户的所有电子邮件。
  2. 在用户注册日期后为每个注册用户安排Quartz作业和触发器1周。
  3. 关于第一种方式,如果作业正在运行并且已经将一半的电子邮件发送到列表并且服务器关闭,我们将不得不添加额外的逻辑以确保我们记录发送的电子邮件并从我们的位置恢复离开了。

    第二个似乎更好,因为它不会同时发送所有电子邮件(导致smtp服务器上的负载),但它也需要为每个用户触发一个可能占用大量数据库空间的触发器。 / p>

    我的假设是否正确?哪种方式是通过服务器停机等恢复的更好方法。

1 个答案:

答案 0 :(得分:1)

轮询以检查是否有合格的用户发送电子邮件是最强大和最简单的。我考虑过为类似场景创建一个Quartz触发器,但我仍然需要某种持久性模型。

安排Quartz作业检查间隔,并在有合格用户发送电子邮件时发送。

我实现了一个基于MvcMailer的框架来完成这个(稍后切换到NVelocity)。有关概述,请参阅我的帖子:https://github.com/smsohan/MvcMailer/pull/12#issuecomment-1368050