J2EE使用JMS队列发送预定的电子邮件

时间:2014-06-12 20:36:41

标签: java email java-ee jms scheduled-tasks

我需要创建J2EE应用程序,它使用JMS队列来异步发送电子邮件,可以安排稍后发送。

我已经创建了bean,它发送带有电子邮件数据的消息和MessageDriven bean,它监听这些消息并发送电子邮件onMessage。现在,我不知道如何实施调度。我之前想过像Java一样的TimerTasks,但是我不确定我是否可以在J2EE中做到这一点。有什么建议怎么做?

3 个答案:

答案 0 :(得分:1)

您是否查看了@Schedules@Schedule注释?您可以使用它来设置类似cron的计划。

http://docs.oracle.com/javaee/6/api/javax/ejb/Schedule.html

答案 1 :(得分:0)

为什么你需要安排?您是否设置了必须发送电子邮件的具体时间?如果您的要求只是稍后发送电子邮件,那么除了JMS队列和一些bean之外,您不需要任何其他内容来阅读它。您也可以调整此bean的线程数。

如果要在具体日期发送电子邮件,则可以将JMS属性设置为交付时间,并将bean配置为读取与条件匹配的消息。请参阅Message javadoc中的消息选择器。

答案 2 :(得分:0)

由于Java EE 6不需要仅将JMS用于异步,因此您可以在EJB上使用@Asynchronous。有关示例,请参阅该主题的Adam Biens post

关于日程安排,crea1指出了正确的工具。或者,您可以使用第三方框架,例如我们在应用程序中使用的Quarz Framework,因为它更复杂。