0

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

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

我在吠叫错误的树吗?

4

3 回答 3

2

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

另一种选择可能是Guava 的 EventBus。使用 spring 设置一个应该是直截了当的,并且有一个 AsynchronousEventBus 可用。

于 2013-06-17T12:09:55.227 回答
0

您可以将RabbitMQActiveMQ与 Spring 一起使用。

于 2013-06-17T12:06:39.697 回答
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。

于 2013-06-17T13:20:44.967 回答