消息队列或调度程序

7 java message-queue quartz-scheduler

我目前正在使用Quartz Scheduler进行异步任务,例如发生异常时发送电子邮件,从Web界面发送电子邮件或定期分析流量.

我应该使用消息队列发送电子邮件吗?这样做是否更有效率或更正确?调度程序方法工作得很好.

如果我使用队列并且电子邮件无法发送,队列是否可以稍后重试发送电子邮件?对于需要立即执行的任务,队列方法看起来比调度程序更简单,但对于调度程序任务,调度程序仍然是,除非队列中有更多比我知道的更多.

我还没有使用过JMS,所以这就是我读过的内容.

沃尔特

Rom*_*eau 2

它们确实不同,这取决于您发送电子邮件的目的和频率。调度程序生成一个基于时间的事件,然后运行一些代码来发送电子邮件。队列无法触发事件,它需要从某处放置消息,然后 MessageListener 发送电子邮件。

要回答您的问题,队列是发送电子邮件的好工具,如果

  1. 如果操作失败,则需要将邮件放回到队列中,即使 SMTP 不知道电子邮件是否已到达目的地。
  2. 某些触发器可以将消息放入队列中。

调度程序可以按一定的时间间隔运行一些 java 代码,从而生成临时事件。如果您想定期发送电子邮件,那么调度程序就是您的最佳选择。

如果您使用调度程序,那么您应该让调度程序将消息放入队列中。如果没有,那么您需要使用其他触发器将消息放入队列中。