Spring Message Driven Bean和java.util.Queue

时间:2013-06-17 11:43:30

标签: java spring message-driven-bean

我想在我的网络应用程序中执行一些非关键的清理操作。我希望将其交给异步流程,但我没有任何JMS提供程序可供我使用(我不太可能在时间表中获得批准)。

我喜欢Spring MDP的想法,但我看到的所有示例都明确地将它与某种JMS实现联系起来。是否可以将它绑定到基于java.util.Queue接口的Queue实现?我想我可以将消息推送到队列并使用Spring MDP来处理它们。

我是在咆哮错误的树吗?

3 个答案:

答案 0 :(得分:2)

也许您可以使用asynchronous tasks进行清理。您可以拥有一个提供@Asnyc注释方法的CleanUp组件。 TaskExecutors隐式使用Queue进行挂起任务(如普通Java的ExecutorService)。还可以选择在队列中收集提交的清理请求,并让它们由计划任务处理。

另一种选择可能是Guava's EventBus。设置一个春天应该是直接的,并且有一个AsynchronousEventBus可用。

答案 1 :(得分:0)

您可以在Spring中使用RabbitMQActiveMQ

答案 2 :(得分:0)

您可以在应用程序中嵌入ApacheMQ BrokerService

<bean id="broker" class="org.apache.activemq.broker.BrokerService" init-method="start">
    <property name="transportConnectorURIs">
        <list>
            <value>tcp://localhost:61616</value>
        </list>
    </property>
</bean>

现在你可以像普通的ApacheMQ一样使用它。