出版商应该等到经纪人可用

Publisher should wait till broker is available

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

<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。

是否可以阻止发布者,直到代理再次可用或进行定期重试?

你可以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>

您可以使用退避策略(例如指数)配置建议,并在重试次数耗尽时采取一些措施(而不是抛出最终异常)。