它 「只是工程」。
XD使用Spring Integration下蓋;請參閱其關於分離器/聚合器的文檔。
Spring集成消息具有標頭和有效負載;該框架對有效載荷一無所知;它可以是任何你想要的。大概你會從網址列表開始,將它們分開,調用http來獲取每個網址的PNG內容。調用一些服務來完成轉換並將結果發送給聚合器。
拆分器在每條消息上設置標題(correlationId
,sequenceSize
,sequenceNumber
)。下游(默認)聚合器使用這些標題重新組裝結果(默認發佈策略是聚合組大小匹配sequenceSize
標頭)。在你的情況下,結果將是圖像的Collection
;聚合器之後的最終自定義處理器可以將該列表轉換爲最終的馬賽克。
編輯:
source | splitter | http-client | processor1 | aggregator | processor2 | file
其中:
source - generates list of URLs
http-client - fetches the PNGs (binary payloads)
processor1 - convert to JPG
processor2 - create mosaic
您需要在源,處理器1和processor2自定義代碼;其餘的應該只是流定義中的配置。
EDIT2:
你可能想這是事件驅動的,所以也許這將是更好的:
http | json-to-object | splitter | http-client | processor1 | aggregator | processor2 | file
,並發表您的網址作爲JSON的列表。
如果做要輪詢源代替,類似觸發源會工作的自定義源...
<int:inbound-channel-adapter channel="output"
auto-startup="false" ref="myPojo" method="foo">
<int:poller fixed-delay="${fixedDelay}" time-unit="SECONDS" />
</int:inbound-channel-adapter>
<bean id="myPojo" class="foo.UrlGenerator" />
,並有foo()
返回NULL,如果有沒有要處理的,或列表網址。
你說這只是起作用,但你能舉個例子「怎麼樣」? – benjist 2014-12-02 20:25:20
你能舉一個例子來說說生成源集合嗎? – benjist 2014-12-02 20:52:54
似乎沒有json-to-object。它應該做什麼? – benjist 2014-12-03 01:07:55