Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File Mule ESB:如何检测部分文件以避免传输部分上传的文件?_File_Partial_Esb_File Transfer_Mule - Fatal编程技术网

File Mule ESB:如何检测部分文件以避免传输部分上传的文件?

File Mule ESB:如何检测部分文件以避免传输部分上传的文件?,file,partial,esb,file-transfer,mule,File,Partial,Esb,File Transfer,Mule,我在Mule ESB服务器上有一个文件夹,可以指向多个源(一个SCP、一个SFTP以及其他源)每当我检测到一个文件时,我都想将其移动到另一个目录。问题是,我正在移动部分完成的文件,导致数据丢失。 我尝试过使用文件的“fileage”属性,但它似乎工作不可靠。我正试图尽可能地降低延迟,因为大多数文件都将是我解决了自己的问题。 经过更多的测试,问题出在操作系统级别。在RedHat上,“上次修改的”时间戳仅每1000毫秒更新一次,为4kb文件造成了太大的延迟。在Windows上更糟糕的是:“上次修改”

我在Mule ESB服务器上有一个文件夹,可以指向多个源(一个SCP、一个SFTP以及其他源)每当我检测到一个文件时,我都想将其移动到另一个目录。问题是,我正在移动部分完成的文件,导致数据丢失。


我尝试过使用文件的“fileage”属性,但它似乎工作不可靠。我正试图尽可能地降低延迟,因为大多数文件都将是我解决了自己的问题。


经过更多的测试,问题出在操作系统级别。在RedHat上,“上次修改的”时间戳仅每1000毫秒更新一次,为4kb文件造成了太大的延迟。在Windows上更糟糕的是:“上次修改”仅在传输开始时设置,然后在传输完成时重置。MuleSoft团队从这个时间戳中提取fileAge在技术上是正确的,但操作系统更新的频率不够,无法正常工作。他们应该使用文件大小。我将提交一份解决方案。

您在fileAge中遇到了什么可靠性问题?如果是一只虫子,也许值得开一个JIRA@MuleSoft?这就是说,保持低延迟和高可靠性的最佳选择是强制使用控制文件(如.filepart),并创建一个特定的过滤器来查找它。实际上,通过更多的测试,问题出在操作系统级别。在RedHat上,“上次修改的”时间戳仅每1000毫秒更新一次,为4kb文件造成了太大的延迟。在Windows上更糟糕的是:“上次修改”仅在传输开始时设置,然后在传输完成时重置。MuleSoft团队从这个时间戳中提取fileAge在技术上是正确的,但操作系统更新的频率不够,无法正常工作。他们应该使用文件大小。我将提交一份变通方案。嗨,费尔南多,很抱歉回复太晚,只是刚刚看到你的评论。我正在使用一个自定义转换器,它检查文件大小,而不是上次修改的时间。(检查大小->睡眠X毫秒->再次检查大小:如果大小相同,则假设完成。)祝你好运!