2015-09-04 50 views
1

在我的項目中,我正在使用spring集成。接下來是我的應用程序中的流程。當過我發佈一個傳遞消息到「domainEventChannel」,它通過變壓器,然後消息被髮送到inputFromTransformer信道並從該作爲消息是在鏈它通過分離器,變壓器和過濾器。我配置了output-channel =「domainEventQueueChannel」,這是一個隊列通道。在彈簧集成中從鏈中發送消息給QueueChannel時出錯

我能夠跟蹤郵件,直到過濾器,但他們從來沒有達到QueueChannel。

我可以不發送消息給鏈中的隊列通道嗎?

<int:transformer ref="partitionlessTransformer" method="transform" 
     input-channel="domainEventChannel" output-channel="inputFromTransformer" /> 

    <!-- Chain which has the output channel as queue channel--> 
    <int:chain input-channel="inputFromTransformer" 
     output-channel="domainEventQueueChannel"> 
     <int:splitter ref="messageSplitter" method="split" /> 
     <int:transformer ref="jsonToObjectTransformer" /> 
     <int:filter ref="autopayModelProcessTransFilter"></int:filter> 
    </int:chain> 

    <!-- Queue Channel--> 
    <int:channel id="domainEventQueueChannel"> 
     <int:queue capacity="10" /> 
    </int:channel> 

    <!-- service activator which polls queueChannel --> 
    <int:service-activator id="domainEventReconProcessServiceActivator" 
     input-channel="domainEventQueueChannel" ref="domainEventReconProcessServiceActivator" method="intiateAutopayProcessTransRecon"> 
     <int:poller task-executor="domainEventReconProcessServicetaskExecutor" fixed-rate="10" > 
      </int:poller> 
    </int:service-activator> 

    <task:executor id="domainEventReconProcessServicetaskExecutor" 
     pool-size="10" queue-capacity="10" /> 

更新2#: 當我添加以下配置應有盡有件工作正常。消息流從隊列通道服務活化劑:

<int:chain input-channel="domainEventQueueChannel" 
     output-channel="nullChannel"> 
     <int:service-activator id="domainEventReconProcessServiceActivator" 
     ref="domainEventReconProcessServiceActivator" method="intiateAutopayProcessTransRecon" /> 
    <int:poller task-executor="domainEventReconProcessServicetaskExecutor" fixed-rate="10"></int:poller> 
</int:chain> 

更新3#: 就位後鏈我看到服務活化劑的輪詢輪詢queueChannel。但沒有鏈條,輪詢者根本沒有開始,我根本沒有看到輪詢日誌。

隨着鏈到位:

2015-09-08 09:29:31.438 DEBUG 12817 --- [ask-scheduler-8] o.s.integration.channel.QueueChannel  : preSend on channel 'domainEventQueueChannel', message: GenericMessage [[email protected]c0, headers={sequenceNumber=1, correlationId=7a91b5fb-b1aa-464a-2e1b-5309652a0520, id=25ae85aa-e0df-6c72-9a54-2e8dac3c5ddc, sequenceSize=1, timestamp=1441718971437}] 
    2015-09-08 09:29:31.438 DEBUG 12817 --- [ask-scheduler-8] o.s.integration.channel.QueueChannel  : postSend (sent=true) on channel 'domainEventQueueChannel', message: GenericMessage [[email protected]c0, headers={sequenceNumber=1, correlationId=7a91b5fb-b1aa-464a-2e1b-5309652a0520, id=25ae85aa-e0df-6c72-9a54-2e8dac3c5ddc, sequenceSize=1, timestamp=1441718971437}] 
    2015-09-08 09:29:31.438 DEBUG 12817 --- [ask-scheduler-8] o.s.integration.channel.DirectChannel : postSend (sent=true) on channel 'inputFromTransformer', message: GenericMessage [payload=[{"eventInfo":{"eventId":"4535345353","eventName":"AutopayModelsExtracted","parentEventId":"4535345353"},"numOfAutopayModels":20,"message":"Published autopaymodels needed to be processed"}], headers={id=7a91b5fb-b1aa-464a-2e1b-5309652a0520, timestamp=1441718971410}] 
    2015-09-08 09:29:31.438 DEBUG 12817 --- [ask-scheduler-8] o.s.integration.channel.DirectChannel : postSend (sent=true) on channel 'domainEventChannel', message: GenericMessage [payload={domainevents={0=[{"eventInfo":{"eventId":"4535345353","eventName":"AutopayModelsExtracted","parentEventId":"4535345353"},"numOfAutopayModels":20,"message":"Published autopaymodels needed to be processed"}]}}, headers={id=438c63c8-1ed1-6516-110e-c3478aca35c8, timestamp=1441718971409}] 
    2015-09-08 09:29:31.438 DEBUG 12817 --- [etaskExecutor-1] o.s.integration.channel.QueueChannel  : postReceive on channel 'domainEventQueueChannel', message: GenericMessage [[email protected]c0, headers={sequenceNumber=1, correlationId=7a91b5fb-b1aa-464a-2e1b-5309652a0520, id=25ae85aa-e0df-6c72-9a54-2e8dac3c5ddc, sequenceSize=1, timestamp=1441718971437}] 
    2015-09-08 09:29:31.438 DEBUG 12817 --- [etaskExecutor-1] o.s.i.endpoint.PollingConsumer   : Poll resulted in Message: GenericMessage [[email protected]c0, headers={sequenceNumber=1, correlationId=7a91b5fb-b1aa-464a-2e1b-5309652a0520, id=25ae85aa-e0df-6c72-9a54-2e8dac3c5ddc, sequenceSize=1, timestamp=1441718971437}] 
    2015-09-08 09:29:31.438 DEBUG 12817 --- [etaskExecutor-1] o.s.i.handler.MessageHandlerChain  : org.springframework.integration.handler.MessageHandlerChain#1 received message: GenericMessage [[email protected]c0, headers={sequenceNumber=1, correlationId=7a91b5fb-b1aa-464a-2e1b-5309652a0520, id=25ae85aa-e0df-6c72-9a54-2e8dac3c5ddc, sequenceSize=1, timestamp=1441718971437}] 
    2015-09-08 09:29:31.438 DEBUG 12817 --- [etaskExecutor-1] o.s.i.handler.ServiceActivatingHandler : ServiceActivator for [org.spr[email protected]72193fb5] (org.springframework.integration.handler.MessageHandlerChain#1$child.domainEventReconProcessServiceActivator) received message: GenericMessage [[email protected]c0, headers={sequenceNumber=1, correlationId=7a91b5fb-b1aa-464a-2e1b-5309652a0520, id=25ae85aa-e0df-6c72-9a54-2e8dac3c5ddc, sequenceSize=1, timestamp=1441718971437}]` 

無鏈:

2015-09-08 09:48:02.572 DEBUG 13043 --- [ask-scheduler-1] o.s.i.splitter.MethodInvokingSplitter : [email protected]53abfc07 received message: GenericMessage [payload=[{"eventInfo":{"eventId":"4535345353","eventName":"AutopayModelsExtracted","parentEventId":"4535345353"},"numOfAutopayModels":20,"message":"Published autopaymodels needed to be processed"}], headers={id=f477f025-e92f-f896-9ac4-2ce1b91fb895, timestamp=1441720082572}] 
2015-09-08 09:48:02.574 DEBUG 13043 --- [ask-scheduler-1] o.s.i.t.MessageTransformingHandler  : org.spr[email protected]2c8c16c0 received message: GenericMessage [payload={"eventInfo":{"eventId":"4535345353","eventName":"AutopayModelsExtracted","parentEventId":"4535345353"},"numOfAutopayModels":20,"message":"Published autopaymodels needed to be processed"}, headers={sequenceNumber=1, correlationId=f477f025-e92f-f896-9ac4-2ce1b91fb895, id=1364077a-6d5c-87f9-7d7c-3d144e45d661, sequenceSize=1, timestamp=1441720082574}] 
2015-09-08 09:48:02.599 DEBUG 13043 --- [ask-scheduler-1] o.s.integration.filter.MessageFilter  : [email protected] received message: GenericMessage [[email protected]1, headers={sequenceNumber=1, correlationId=f477f025-e92f-f896-9ac4-2ce1b91fb895, id=c2a324c8-9eb0-66e0-73a1-5595ed87b3ae, sequenceSize=1, timestamp=1441720082599}] 
hey I am in filter and my result would betrue 
2015-09-08 09:48:02.599 DEBUG 13043 --- [ask-scheduler-1] o.s.integration.channel.QueueChannel  : preSend on channel 'domainEventQueueChannel', message: GenericMessage [[email protected]1, headers={sequenceNumber=1, correlationId=f477f025-e92f-f896-9ac4-2ce1b91fb895, id=c2a324c8-9eb0-66e0-73a1-5595ed87b3ae, sequenceSize=1, timestamp=1441720082599}] 
2015-09-08 09:48:02.599 DEBUG 13043 --- [ask-scheduler-1] o.s.integration.channel.QueueChannel  : postSend (sent=true) on channel 'domainEventQueueChannel', message: GenericMessage [[email protected]1, headers={sequenceNumber=1, correlationId=f477f025-e92f-f896-9ac4-2ce1b91fb895, id=c2a324c8-9eb0-66e0-73a1-5595ed87b3ae, sequenceSize=1, timestamp=1441720082599}] 
2015-09-08 09:48:02.599 DEBUG 13043 --- [ask-scheduler-1] o.s.integration.channel.DirectChannel : postSend (sent=true) on channel 'inputFromTransformer', message: GenericMessage [payload=[{"eventInfo":{"eventId":"4535345353","eventName":"AutopayModelsExtracted","parentEventId":"4535345353"},"numOfAutopayModels":20,"message":"Published autopaymodels needed to be processed"}], headers={id=f477f025-e92f-f896-9ac4-2ce1b91fb895, timestamp=1441720082572}] 
2015-09-08 09:48:02.599 DEBUG 13043 --- [ask-scheduler-1] o.s.integration.channel.DirectChannel : postSend (sent=true) on channel 'domainEventChannel', message: GenericMessage [payload={domainevents={0=[{"eventInfo":{"eventId":"4535345353","eventName":"AutopayModelsExtracted","parentEventId":"4535345353"},"numOfAutopayModels":20,"message":"Published autopaymodels needed to be processed"}]}}, headers={id=bf6f4f20-52bb-27e4-df97-4112ad4be3b5, timestamp=1441720082571}] 
2015-09-08 09:48:03.616 DEBUG 13043 --- [ask-scheduler-3] o.s.i.e.SourcePollingChannelAdapter  : Received no Message during the poll, returning 'false' 
2015-09-08 09:48:04.634 DEBUG 13043 --- [ask-scheduler-4] o.s.i.e.SourcePollingChannelAdapter  : Received no Message during the poll, returning 'false' 

回答

1

這僅僅意味着該消息不通過過濾器。

(該過濾器正在丟棄該消息)。

+0

嗨加里。過濾器返回「true」,但仍然沒有通過該消息。當我在過濾器之後在鏈中添加服務激活器時,消息將進入服務激活器 –

+0

在這種情況下,消息應該到達隊列通道而沒有問題;打開DEBUG日誌記錄並按照流程中的消息。 –

+0

嗨加里。經過進一步的調查,我發現郵件被髮送到隊列中,但他們永遠不會被服務激活器收回。我創建了服務激活器,以便多個線程可以處理隊列通道中的消息,但看起來像服務激活器不處理queueChannel中的那些消息。我從服務激活器配置的角度做錯了什麼? –

相關問題