发布者应该等到经纪人可用

时间:2015-05-26 11:33:37

标签: spring jms spring-integration spring-jms

我有一个简单的发布者,它将消息发送到队列。

<int:channel id="publishChannel"/>
<int-jms:outbound-channel-adapter channel="publishChannel" destination="testQueue" session-transacted="true"/>

@Publisher(channel = "publishChannel")
public String sendMessage (String text) {
    return text;
}

如果代理崩溃,则发布者抛出MessageHandlingException。

是否可以阻止发布者,直到经纪人再次可用或定期重试?

1 个答案:

答案 0 :(得分:1)

你可以add a retry advice to the outbound adapter

<int-jms:outbound-channel-adapter channel="publishChannel" destination="testQueue" session-transacted="true>
    <int:request-handler-advice-chain>
        <ref bean="myRetryAdvice" />
    </request-handler-advice-chain>
</int-jms:outbound-channel-adapter>

您可以使用退避策略(例如指数)配置建议,并在重试耗尽时执行某些操作(而不是抛出最终异常)。