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