将MDB执行推迟到特定日期/时间

时间:2012-09-07 07:00:21

标签: java-ee ejb jms deferred-execution

我有一个在WebLogic 10.3.5上运行的Java EE 5 MDB驱动的JMS系统,用于通过电子邮件/ IM / SMS发送通知。我需要指定一个日期/时间窗口,告知应该在其中传递通知。

据我所知,没有选择在某个日期/时间传递/执行JMS消息。

我的公告列表位于数据库表中,所以目前我有一个EJB 3.0计时器Bean,它每2分钟轮询一次表,并将消息发送到JMS队列,以便在该窗口中发布新的公告。

它有效,但我不喜欢DB表轮询是系统中的一个关键点,它不像JMS部分那样按需扩展。我在表的状态列上进行了分区,但即使这样,在两个日期进行BETWEEN也不会随着数据的增长而扩展。

人们可以建议一个可扩展的解决方案,允许我放弃表轮询,只在创建公告时创建JMS消息,将其执行推迟到指定的日期/时间吗?至关重要的是,延迟执行应该是持久的,服务器重启仍然存在并自动继续“等待”服务器重启时执行。

0 个答案:

没有答案