首页 > 解决方案 > 在 Mulesoft 中如何在 ActiveMQ 尝试重新连接时停止 SFTP 连接器以读取文件

问题描述

我有一个可靠的采集流程,其中一个入站 SFTP 连接器正在轮询和读取文件并发布到 JMS ActiveMq。当 ActiveMQ 关闭时,我遇到了问题。JMS 连接器进入重新连接模式可以说每分钟但 SFTP 正在积极读取文件并尝试在 ActiveMq 中发布文件。这会导致消息丢失,并且死信队列的概念也不起作用,因为 JMS 已关闭。

有没有办法在 JMS 成功重新连接之前停止读取文件?另外,如果消息在飞行中并且 JMS 在消息进入队列之前停止了怎么办?消息会回滚吗?

我正在使用骡子 3.9

标签: mulesoft

解决方案


如果您将流处理策略设置为同步并在连接器配置中仅使用 1 个接收器线程。如果前一个文件没有被处理,那么它不应该尝试读取一个新文件。如果没有这些更改,它就不是可靠模式的正确实现。

更多信息:

例子:

<sftp:connector name="sftpConn">
    <receiver-threading-profile maxThreadsActive="1" />
</sftp:connector>

<flow name="mainFlow" processingStrategy="synchronous">
    ...

推荐阅读