繁体   English   中英

ule子文件连接器,无需轮询

[英]Mule file connector without polling

我想知道是否m子文件连接器总是轮询源目录,或者是否可以覆盖此行为。

我将端点配置为使用文件连接器从FTP位置读取文件,然后对其进行处理。 但是我的要求是,仅在请求时(例如,从Java调用终结点时)才应读取文件。 通过控制此行为,我可以在一天结束时调用端点,并在一天中读取放置在源中的所有文件。

但是,ule子会继续轮询源位置,并在将文件放在源位置后立即下载文件。 我试图查看是否可以通过服务覆盖来实现所需的行为,但是似乎不可能实现。

是否有其他方法可以从源中读取文件,或者可以在m子中覆盖轮询行为?

您可以通过以下方法来实现

  1. 使用带有Cron Scheduler的 Poll Schedular可以在一天的固定时间自动选择文件。
  2. 对于手动触发,您可以在流中使用mule-module-requester公开HTTP端点并选择文件。 Mule请求者允许您选择单个或多个资源。

希望这可以帮助。

使用我从@Jason和@anupambhusari收到的指针,我能够解决我面临的问题。 我将m子流量放到下面,希望对其他人有帮助。

在下面的ule子流程中,我可以调用vm端点“ fileReader”从FTPserver下载文件,然后借助“ CopyFile”流程将其复制到本地文件夹。

<ftp:connector name="FTP_Connector" pollingFrequency="1000" validateConnections="true" doc:name="FTP"/>
<flow name="HTTP-RequestFlow">
<vm:inbound-endpoint exchange-pattern="request-response"  path="/fileReader" doc:name="vm"/>
<mulerequester:request resource="ftp://<username>:<password>@<host>:<port>/<FTP resource Path>/?FTP_Connector" doc:name="Mule Requester"/>
<flow-ref name="CopyFile" doc:name="Copy File"/>
/flow>
<flow name="CopyFile" >
<file:outbound-endpoint path="output" outputPattern="#[message.inboundProperties.'originalFilename']" responseTimeout="10000" doc:name="File"/>
<set-payload value="Got a File" doc:name="Set Payload"/>
<logger message="Copying files on local disk #[message.payload]" level="INFO"/>
</flow>

如果可以通过在一天结束时设置文件轮询来满足需求,而不必通过Java程序来触发它,则可以创建一个石英作业。 有关代码示例,请参见此问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM