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



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

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

您查看过@Schedules@Schedule注释吗?您可以使用它来设置类似cron的时间表。

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

为什么需要安排时间?你是否设定了必须发送电子邮件的具体时间?如果您的需求只是稍后发送电子邮件,那么您只需要JMS队列和一些bean就可以读取它。您还可以为这个bean调整线程数。

如果您想在具体日期发送电子邮件,那么可以为传递时间设置JMS属性,并配置bean以读取符合条件的消息。请参阅Messagejavadoc中的消息选择器。

由于Java EE 6不需要仅针对异步使用JMS,因此可以在EJB上使用@Asynchronous。请参阅Adam Biens关于该主题的帖子以获取示例。

关于调度,crea1指出了合适的工具。或者,你可以使用第三方框架,比如我们在应用程序中使用的Quarz框架,因为它更复杂。

最新更新