File Mule ESB:如何检测部分文件以避免传输部分上传的文件?
我在Mule ESB服务器上有一个文件夹,可以指向多个源(一个SCP、一个SFTP以及其他源)每当我检测到一个文件时,我都想将其移动到另一个目录。问题是,我正在移动部分完成的文件,导致数据丢失。File Mule ESB:如何检测部分文件以避免传输部分上传的文件?,file,partial,esb,file-transfer,mule,File,Partial,Esb,File Transfer,Mule,我在Mule ESB服务器上有一个文件夹,可以指向多个源(一个SCP、一个SFTP以及其他源)每当我检测到一个文件时,我都想将其移动到另一个目录。问题是,我正在移动部分完成的文件,导致数据丢失。 我尝试过使用文件的“fileage”属性,但它似乎工作不可靠。我正试图尽可能地降低延迟,因为大多数文件都将是我解决了自己的问题。 经过更多的测试,问题出在操作系统级别。在RedHat上,“上次修改的”时间戳仅每1000毫秒更新一次,为4kb文件造成了太大的延迟。在Windows上更糟糕的是:“上次修改”
我尝试过使用文件的“fileage”属性,但它似乎工作不可靠。我正试图尽可能地降低延迟,因为大多数文件都将是我解决了自己的问题。
经过更多的测试,问题出在操作系统级别。在RedHat上,“上次修改的”时间戳仅每1000毫秒更新一次,为4kb文件造成了太大的延迟。在Windows上更糟糕的是:“上次修改”仅在传输开始时设置,然后在传输完成时重置。MuleSoft团队从这个时间戳中提取fileAge在技术上是正确的,但操作系统更新的频率不够,无法正常工作。他们应该使用文件大小。我将提交一份解决方案。您在fileAge中遇到了什么可靠性问题?如果是一只虫子,也许值得开一个JIRA@MuleSoft?这就是说,保持低延迟和高可靠性的最佳选择是强制使用控制文件(如.filepart),并创建一个特定的过滤器来查找它。实际上,通过更多的测试,问题出在操作系统级别。在RedHat上,“上次修改的”时间戳仅每1000毫秒更新一次,为4kb文件造成了太大的延迟。在Windows上更糟糕的是:“上次修改”仅在传输开始时设置,然后在传输完成时重置。MuleSoft团队从这个时间戳中提取fileAge在技术上是正确的,但操作系统更新的频率不够,无法正常工作。他们应该使用文件大小。我将提交一份变通方案。嗨,费尔南多,很抱歉回复太晚,只是刚刚看到你的评论。我正在使用一个自定义转换器,它检查文件大小,而不是上次修改的时间。(检查大小->睡眠X毫秒->再次检查大小:如果大小相同,则假设完成。)祝你好运!