Mule石英轮询FTP端点
我正在使用quartz轮询器轮询FTP端点,但我的问题是,当轮询器运行时,它不会从给定路径或目录中拾取超过1个文件,它只会拾取一个文件。我们如何在轮询器启动时提取所有文件Mule石英轮询FTP端点,ftp,quartz-scheduler,mule,Ftp,Quartz Scheduler,Mule,我正在使用quartz轮询器轮询FTP端点,但我的问题是,当轮询器运行时,它不会从给定路径或目录中拾取超过1个文件,它只会拾取一个文件。我们如何在轮询器启动时提取所有文件 感谢您的期待。石英轮询端点消息源设计为在每次触发时处理一个mule事件,因此根据设计,它将只使用一个文件 这被报告为一个增强请求,但从代码上看,它应该被归类为一个增强请求 要获得不同的行为,您应该编写自己的自定义组件,并使用该组件从ftp检索所有文件,或者依赖ftp传输本身 HTH我遇到过同样的问题,并使用两个单独的流解决了它
感谢您的期待。石英轮询端点消息源设计为在每次触发时处理一个mule事件,因此根据设计,它将只使用一个文件 这被报告为一个增强请求,但从代码上看,它应该被归类为一个增强请求 要获得不同的行为,您应该编写自己的自定义组件,并使用该组件从ftp检索所有文件,或者依赖ftp传输本身
HTH我遇到过同样的问题,并使用两个单独的流解决了它。此外,自定义接收器用于避免删除远程文件,java组件用于通知作业完成,请参见以下流程:
<ftp:connector name="ftp-connector" passive="true" streaming="true" binary="true">
<service-overrides messageReceiver="app.NonDeletingFtpMessageReceiver" />
</ftp:connector>
<ftp:endpoint name="ftp-fetch" connector-ref="ftp-connector"
host="${pr.ftp.host}" port="${pr.ftp.port}" path="${pr.ftp.remotePath}"
user="${pr.ftp.user}" password="${pr.ftp.password}">
<file:filename-wildcard-filter pattern="${pr.ftp.filePattern}" />
</ftp:endpoint>
<quartz:endpoint name="quartz-batch" jobName="cron-job"
cronExpression="${pr.ftp.cron}" responseTimeout="${pr.ftp.timeout}">
<quartz:event-generator-job />
</quartz:endpoint>
<flow name="ftp-scheduler-flow" doc:name="ftp-scheduler-flow">
<inbound-endpoint ref="quartz-batch" />
<echo-component />
<flow-ref name="ftp-process-fetch-flow" />
<component class="app.FTPFetchHandler" />
</flow>
<flow name="ftp-process-fetch-flow">
<inbound-endpoint ref="ftp-fetch" />
<expression-filter evaluator="header"
expression="originalFilename!=null" />
<file:outbound-endpoint path="${pr.ftp.localPath}"
responseTimeout="${pr.ftp.timeout}" outputPattern="#[header:originalFilename]" />
</flow>