我不知道任何类似于ActiveMq可以使用弹簧任务执行器。
您的要求
“的想法是,从消息队列消费消息时(一个 ActiveMQ的利用消息组),然后将执行的消息 处理任务的执行(在处理来自该组的消息的前一个任务 还没有完成之前,处理来自消息组的消息的任务 没有开始)。“
我的建议:
您指定的要求,可以不必在简单的Java任何麻烦来执行。
您可以在数据库中使用一个简单的表创建一个虚拟队列,并使用自定义查询生成在你需要的方式的内容。
当数据存在于数据库中时,您可以执行所有操作,例如获取类似数据,重用数据等。一旦实现了这些简单步骤,您可以在没有太多开销的情况下完成使用ActiveMQ执行的所有操作。
- 将每个请求插入到数据库中。
- 根据需求获取数据。
- 根据您获取的数据构建您需要的内容。
- 使用任务计划程序执行您需要执行的操作。
- 从数据库中删除数据。
我没有看到任何使用一些自定义代码的要求麻烦。
希望它有帮助。好运:)
解决方案,不使用数据库。
1创建你所需要的元素的类文件。如ID,名称,地址等。
2创建一个静态的最终的HashMap
像这样用key作为分组值和arraylist
的className
作为值。
public static final HashMap<Key, List<ClassName>> map= new HashMap<Key, List<ClassName>>();
3,如果存在该键的条目类现在添加到列表中HashMap
。否则用这个新密钥和一个带有该类的ArrayList
放置一个新的散列值。现在
if(map.containsKey(className.getId())){
map.get(className.getId()).add(className);
}
else{
List<ClassName> lstClass= new ArrayList<ClassName>();
lstClass.add(className);
map.put(className.getId(), lstClass);
}
4为每个键你会得到包含所有关键
类这样会起作用,就像DB类ClassName
的ArrayList
。在这个例子中,你无法基于多个值进行条件判断。但根据您的要求,任何事情都可以改变。
Spring集成具有[聚合](http://docs.spring.io/spring-integration/docs/2.0.0.RC1/reference/html/aggregator.html),其聚合相关的消息。我知道,与任务不太一样。 – flup
其实我并不需要聚合,只是订购......各种各样的.. :) – Manjabes