Spring 集成出站通道适配器和数据库持久性
Spring integration outbound-channel-adapter and database persistence
我正在开发一个使用出站通道适配器将消息发布到队列的应用程序。有一个新的要求,在消息处理过程中生成的唯一标识应该在队列上成功发布后持久化到数据库中,而不是等待任何回复。
谁能告诉我最好的方法是什么。
这是我现有应用程序中的内容。
<int:gateway id="writerGateway" service-interface="CustomService" default-request-channel="writerChannel">
</int:gateway>
<int-jms:outbound-channel-adapter channel="writerChannel" jms-template="jmsTemplate" destination-name="${queueName}" extract-payload="true"/>
<int:channel id="writerChannel">
<int:interceptors>
<int:wire-tap channel="writerLogger"/>
</int:interceptors>
</int:channel>
<int:logging-channel-adapter id="writerLogger" logger-name="writerLogger" level="INFO" expression="'Sending ' + payload?.size() + ' events'"/>
任何帮助将不胜感激。
谢谢,
AK
将 writerChannel
设为 <publish-subscribe-channel/>
并为其订阅第二个流 (order="2"
),例如transformer -> jdbc-outbound-channel-adapter
。在 jms 适配器上设置 order="1"
,如果 jms 发送成功,将调用第二个流程。
或者,使用 <recipient-list-router/>
。
我正在开发一个使用出站通道适配器将消息发布到队列的应用程序。有一个新的要求,在消息处理过程中生成的唯一标识应该在队列上成功发布后持久化到数据库中,而不是等待任何回复。
谁能告诉我最好的方法是什么。
这是我现有应用程序中的内容。
<int:gateway id="writerGateway" service-interface="CustomService" default-request-channel="writerChannel">
</int:gateway>
<int-jms:outbound-channel-adapter channel="writerChannel" jms-template="jmsTemplate" destination-name="${queueName}" extract-payload="true"/>
<int:channel id="writerChannel">
<int:interceptors>
<int:wire-tap channel="writerLogger"/>
</int:interceptors>
</int:channel>
<int:logging-channel-adapter id="writerLogger" logger-name="writerLogger" level="INFO" expression="'Sending ' + payload?.size() + ' events'"/>
任何帮助将不胜感激。
谢谢, AK
将 writerChannel
设为 <publish-subscribe-channel/>
并为其订阅第二个流 (order="2"
),例如transformer -> jdbc-outbound-channel-adapter
。在 jms 适配器上设置 order="1"
,如果 jms 发送成功,将调用第二个流程。
或者,使用 <recipient-list-router/>
。