>我有一个用例,我从主题中读取消息并传递到 ftp 端点。如果 ftp 端点不可用,我需要将消息存储在存储中这样它就不会丢失。不应处理从主题读取的未来消息。在端点可用之前,一旦端点可用,我们将处理第一个收到的消息后跟所有消息(按接收顺序排列)。我不是确定如何实现这一点。
两个选项:
-
使用
Until Successful
范围:http://www.mulesoft.org/documentation/display/current/Until+Successful+Scope<until-successful objectStore-ref="objectStore" maxRetries="5" secondsBetweenRetries="60"> <ftp:outbound-endpoint ... /> </until-successful>
带有保留排序的
objectStore
。我认为任何默认实现都不能保证这一点,因此您必须创建自己的实现。 - 将消息存储在 JMS 队列中,并具有以事务方式使用消息并尝试 FTP 调度的流。如果失败,事务将失败,消息将被推送回队列以进行重新传递尝试。确保使用支持消息排序的 JMS 代理(如 http://marcelojabali.blogspot.ca/2011/11/preserving-message-order-with-apache.html)。