具有轮询范围的Mule文件入站连接器

时间:2017-01-05 15:24:25

标签: mule mule-esb

我正在尝试使用mule入站文件连接器,调查范围出错,说无法启动端点。如果我删除轮询范围并使用默认轮询的文件连接器,并且其工作正常,没有任何文件路径更改。

我想知道为什么民意调查范围会出错?如果文件入站连接器不允许包装在poll范围内,为什么anypoint studio在wrap in选项中显示poll范围?

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

Mule won't allow POLL message processor to read file using file Inbound?

感谢您的回复。

4 个答案:

答案 0 :(得分:0)

请提供SSCCE。 根据您的问题,您根本不需要民意测验。 File Connector已具有此功能,可定期检查文件。这是每0.123秒轮询文件的示例

<file:inbound-endpoint path="/tmp" responseTimeout="10000" doc:name="File" pollingFrequency="123"/>

答案 1 :(得分:0)

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

答案 2 :(得分:0)

将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 =“已停止”,让轮询调度程序启动流程。在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>

答案 3 :(得分:0)

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

&#13;
&#13;
 <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>
&#13;
&#13;
&#13;