我有一些非关键的清理操作,我想在我的网络应用程序中执行。我希望将其交给异步流程,但我没有任何可用的 JMS 提供程序(而且我不太可能在时间范围内获得批准)。
我喜欢 Spring MDP 的想法,但我见过的所有示例都明确地将其与某种 JMS 实现联系起来。是否可以将其绑定(bind)到基于 java.util.Queue 接口(interface)的队列实现?我想我可以将消息推送到队列并使用 Spring MDP 来处理它们。
我是不是找错树了?
最佳答案
也许你可以使用asynchronous tasks进行清理工作。您可以有一个提供 @Asnyc 注解方法的 CleanUp
组件。 TaskExecutors 隐式地使用队列来处理待处理的任务(如普通 Java 的 ExecutorService)。还可以选择将提交的清理请求收集到队列中并让计划任务处理它们。
另一个替代方案可能是 Guava's EventBus 。使用 spring 设置一个应该很简单,并且有一个 AsynchronousEventBus 可用。
关于java - Spring消息驱动Bean和java.util.Queue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17146687/