首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Mule中使用ftp入站端点首先轮询最旧的文件

如何在Mule中使用ftp入站端点首先轮询最旧的文件
EN

Stack Overflow用户
提问于 2014-04-03 18:53:54
回答 2查看 1.1K关注 0票数 0

我正在做一个在Mule中使用FTP端点的用例。

我期望FTP入站终结点应该首先轮询最旧的文件。目前,它正在随机轮询文件。

有没有办法将FTP配置为首先轮询最旧的文件(文件首先放在FTP共享文件夹中)?

有没有人能给我建议一下实现这个用例的解决方案?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-04-03 19:35:53

我相信您必须扩展默认的Mule类,并在FtpConnectionFactory Connector中将新类设置为名为connectionFactoryClass的属性。对于实际的排序,您需要扩展工厂使用的Apache FTPClient类,使用一个按时间戳对文件清单进行排序的方法。覆盖FTPClient.initiateListParsing()方法可能就足够了。

票数 1
EN

Stack Overflow用户

发布于 2014-04-04 03:44:41

我在sftp连接器中做过类似的事情,但我在文件名中有时间戳。我们可以尝试这种方法,如果时间戳,或者在某种基础上,我们可以对文件进行排序。它轮询目录,获取所有文件名,在连接器中配置服务覆盖,根据时间戳对文件名进行排序,然后进行路由。粘贴示例代码以供参考。我们也可以尝试用ftp做类似的事情。

覆盖服务覆盖类中的poll()

代码语言:javascript
复制
public void poll(){
String[] files = sftpRRUtil.getAvailableFiles(false);
List<String> orderedFileList = sortAllFileNamesByTime(files);
Map<String,String> eventStateMap=new HashMap<String,String>();
for (String file : orderedFileList){
if (getLifecycleState().isStopping()){
 break;
}
 routeFile(file);
}
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22835367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档