1

我正在尝试使用带有轮询范围的骡子入站文件连接器出现错误说无法启动端点。如果我删除轮询范围并使用具有默认轮询的文件连接器并且它工作正常而没有任何文件路径更改。

我想知道为什么轮询范围会出错?如果文件入站连接器不允许包含在轮询范围中,为什么 anypoint studio 在选项中显示轮询范围?

我发现了类似的问题,但我没有看到详细的解释。

Mule 不允许 POLL 消息处理器使用文件 Inbound 读取文件?

提前感谢您的回复。

4

4 回答 4

1

使用 mule-module-requester https://github.com/mulesoft/mule-module-requester和 Poll Scheduler。

相关帖子:http: //blogs.mulesoft.com/dev/mule-dev/introducing-the-mule-requester-module/

另一种方式是,

设置 FTP 流 initialState="stopped",并让轮询调度程序启动流。FTP 处理完成后,再次停止流。

见示例代码:

<ftp:connector name="FTP" pollingFrequency="1000"
     validateConnections="true" moveToDirectory="/work/ftp/processed"
     doc:name="FTP" />
 <flow name="scheduleStartFTPFlow">
     <poll doc:name="Poll">
         <fixed-frequency-scheduler frequency="1"
             timeUnit="MINUTES" />
         <expression-component doc:name="START FTP FLOW"><![CDATA[if(app.registry.processFTPFlow.isStopped()){
            app.registry.processFTPFlow.start();
    }]]></expression-component>
     </poll>
     <logger message="Poll Logging: #[payload]" level="INFO"
         doc:name="Logger" />
 </flow>
 <flow name="processFTPFlow" initialState="stopped">
     <ftp:inbound-endpoint host="localhost" port="21"
         path="/data/ftp" user="Sanjeet" password="sanjeet123" responseTimeout="10000"
         doc:name="FTP" connector-ref="FTP" />
     <logger message="Logging FTP #[payload]" level="INFO" doc:name="Logger" />
     <expression-component doc:name="STOP FTP FLOW"><![CDATA[app.registry.processFTPFlow.stop();]]></expression-component>
 </flow>
于 2017-11-25T16:56:30.503 回答
0

您可以在全局元素部分创建一个文件端点,然后使用 mule requester 在轮询范围内调用该端点。

 <file:connector name="File1" autoDelete="true" streaming="true" validateConnections="true" doc:name="File"/>
    <file:endpoint connector-ref="File1" name="File" responseTimeout="10000" doc:name="File" path="/"/>
    <flow name="pocforloggingFlow1">
        <poll doc:name="Poll">
            <mulerequester:request resource="File" doc:name="Mule Requester"/>
        </poll>
    </flow>

于 2017-11-29T06:04:36.333 回答
0

我的建议是使用文件连接器旁边的石英连接器,并在石英连接器中设置间隔。或者使用具有轮询频率的文件连接器本身,因此无需将文件包装在轮询范围内。

于 2017-05-04T10:26:33.067 回答
0

请提供SSCCE。根据您的问题,您根本不需要投票。文件连接器已经有这个功能来定期检查文件。这是每 0.123 秒轮询文件的示例

<file:inbound-endpoint path="/tmp" responseTimeout="10000" doc:name="File" pollingFrequency="123"/>
于 2017-01-19T18:11:41.487 回答