如何确定文件是否已通过Mule中的自定义SFTP连接器完成下载?

时间:2019-01-09 23:03:31

标签: mule sftp

我正在使用Mule中的自定义SFTP连接器(用Groovy编写)每天两次将文件下载到本地文件夹。我将SFTP超时设置为30秒,入站文件连接器轮询频率设置为0.5秒,文件使用期限设置为1秒。

每隔几天,该过程将在数据编织/转换阶段失败。日志表明必填字段为null,但是当我手动检查文件时,该值在那里。此外,它在文件的任何字段上随机失败,就像文件不完整一样,不是这种情况-当我将下载的文件与远程服务器进行比较时,它们是相同的。如果我在本地计算机上手动运行该过程,则该过程始终会成功完成,从而使此问题难以复制。

这将向我建议文件已完成下载,正在处理中。

在处理器开始解析文件之前,是否有办法确定文件是否已从SFTP服务器完成下载?

2 个答案:

答案 0 :(得分:0)

下载文件后,从源中将其删除。在处理下载的文件之前,您可以检查源文件夹中是否不存在该文件,也可以检查该字段是否为空。如果可以的话,请让我。

答案 1 :(得分:0)

每5秒钟等待一次,并检查fileSize。如果fileSizes(先前和当前)相等,则继续。如果没有,您就知道它仍在下载中,需要再等待5秒钟。