我不知道任何類似於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