Мул партия не запустится

Я создал пакетное задание Mule с вводом SFTP, и оно не будет извлекать csv-файл. Когда те же компоненты перемещаются в рабочий процесс, SFTP правильно опрашивает и извлекает файл.

Что я могу сделать, чтобы получить ввод SFTP для опроса и получения входного файла?

Мул поток XML:

<?xml version="1.0" encoding="UTF-8"?>

<mule         
     
    
    xsi_schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/sftp http://www.mulesoft.org/schema/mule/sftp/current/mule-sftp.xsd
http://www.mulesoft.org/schema/mule/batch http://www.mulesoft.org/schema/mule/batch/current/mule-batch.xsd
http://www.mulesoft.org/schema/mule/ee/ftp http://www.mulesoft.org/schema/mule/ee/ftp/current/mule-ftp-ee.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
http://www.mulesoft.org/schema/mule/ftp http://www.mulesoft.org/schema/mule/ftp/current/mule-ftp.xsd">
    <ftp:connector name="FTP" pollingFrequency="1000" validateConnections="true" doc_name="FTP"></ftp:connector>
    <sftp:connector name="SFTP" validateConnections="true" doc_name="SFTP" pollingFrequency="10"></sftp:connector>
    <http:request-config name="HTTP_Request_Configuration" host="${host}" port="${userprocess.port}" doc_name="HTTP Request Configuration"></http:request-config>
    <batch:job name="userbatch">
        <batch:input>
            <sftp:outbound-endpoint exchange-pattern="request-response" connector-ref="SFTP" host="localhost" port="2222" path="//input" user="${ftp.user}" password="${ftp.password}" responseTimeout="10000" doc_name="SFTP"/>
        </batch:input>
        <batch:process-records>
            <batch:step name="Batch_Step">
                <object-to-string-transformer mimeType="application/csv" doc_name="Object to String"></object-to-string-transformer>
                <object-to-byte-array-transformer doc_name="Object to Byte Array"></object-to-byte-array-transformer>
                <logger message="#['Record ' +flowVars.counter +' being processed: ' + payload]" level="INFO" doc_name="Logger"></logger>
            </batch:step>
        </batch:process-records>
        <batch:on-complete>
            <sftp:outbound-endpoint exchange-pattern="one-way" connector-ref="SFTP" outputPattern="#[message.inboundProperties.originalFilename+'.processed']" host="localhost" port="2222" path="//output" user="${ftp.user}" password="${ftp.password}" responseTimeout="10000" duplicateHandling="addSeqNo" keepFileOnError="true" doc_name="SFTP"></sftp:outbound-endpoint>
        </batch:on-complete>
    </batch:job>
</mule>

CSV-файл:

1,user1

Спасибо

1 ответ

  1. batch:input необходимо создать коллекцию, итерационный и batch:process-recordsт.д. Для работы, как это работает на каждой записи в отдельности. Вы просто передаете весь поток файлов.

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

    Больше информации о том, как работают все шаги здесь: https://docs.mulesoft.com/mule-user-guide/v/3.7/batch-processing