我想在我的网络应用程序中执行一些非关键的清理操作。我希望将其交给异步流程,但我没有任何JMS提供程序可供我使用(我不太可能在时间表中获得批准)。
我喜欢Spring MDP的想法,但我看到的所有示例都明确地将它与某种JMS实现联系起来。是否可以将它绑定到基于java.util.Queue接口的Queue实现?我想我可以将消息推送到队列并使用Spring MDP来处理它们。
我是在咆哮错误的树吗?
答案 0 :(得分:2)
也许您可以使用asynchronous tasks进行清理。您可以拥有一个提供@Asnyc注释方法的CleanUp
组件。 TaskExecutors隐式使用Queue进行挂起任务(如普通Java的ExecutorService)。还可以选择在队列中收集提交的清理请求,并让它们由计划任务处理。
另一种选择可能是Guava's EventBus。设置一个春天应该是直接的,并且有一个AsynchronousEventBus可用。
答案 1 :(得分:0)
答案 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一样使用它。