Mule 4 sftp read file - стратегия повторного подключения не работает

Я пытаюсь прочитать файл из местоположения SFTP. Я использую Mule 4.4 Community edition. Если при подключении к SFTP-серверу возникает какая-либо ошибка или файл отсутствует, муле повторит попытку 2 раза.

Поэтому я настроил в sftp-коннекторе: «Стратегия повторного подключения» как «Стандартная».

Однако журналы не показывают каких-либо повторных попыток. ПРИМЕЧАНИЕ. В идеале это будет запущено в запланированное время (планировщик), но в целях тестирования я использую прослушиватель HTTP для вызова потока.

Вот код:

      <sftp:config name="SFTP_Config" doc:name="SFTP Config">
        <sftp:connection host="abcd" username="xyz" password="pwd" />
    </sftp:config>

<flow name="get:employee">
        <logger level="INFO" doc:name="Logger"  message="starting search" category="get-employee"/>
        
                <sftp:read doc:name="Read"  config-ref="SFTP_Config" path="/a/employees.unl">
            <repeatable-in-memory-stream />
            <reconnect />
        </sftp:read>
        <error-handler ></error-handler>    
</flow>

Интересно, делаю ли я что-то не так? Я бы хотел, чтобы поток или, по крайней мере, чтение файла было предпринято дважды, прежде чем возникнет ошибка.

В настоящее время, когда файл не существует в папке sftp, он просто выдает ошибку:

Сообщение: Путь '/a/employees.unl' не существует

Тип ошибки: SFTP:ILLEGAL_PATH

когда вступает в силу стратегия повторного подключения? Спасибо

1 ответ

Стратегии повторного подключения предназначены для соединений, а не для неудачных операций. В вашем примере соединение работает нормально. Операция завершается ошибкой, так как каталог не существует.

Для операций вы должны поместить операцию внутри <until-successful>сфера. Вы можете использовать атрибут maxRetries, чтобы указать количество повторных попыток.

Документация: https://docs.mulesoft.com/mule-runtime/4.4/until-successful-scope

Другие вопросы по тегам