【问题标题】:Mule file transfer not deleting source files骡文件传输不删除源文件
【发布时间】:2011-12-15 17:43:04
【问题描述】:

我正在使用 Mule 3.2,并且正在将文件从一个位置移动到另一个位置。错误/问题是 Mule 不断地一次又一次地处理相同的文件并且没有删除它们。

控制台显示:

org.mule.transport.file.FileMessageReceiver: Lock obtained on file:

我的配置文件如下:

<flow name="File-FTP-Bridge">
    <file:inbound-endpoint path="${outbound.input.path}"
        moveToDirectory="${outbound.input.backup.path}">
        <file:filename-wildcard-filter
            pattern="*.msg" />
    </file:inbound-endpoint>
    <ftp:outbound-endpoint user="${outbound.ftp.user}"
        password="${outbound.ftp.password}" host="${outbound.ftp.host}"
        path="${outbound.ftp.path}" port="${outbound.ftp.port}"
        outputPattern="#[header:originalFilename]">
    </ftp:outbound-endpoint>
</flow>

我找不到这个问题的根本原因。提前致谢。

【问题讨论】:

  • 请分享您使用的配置(显示文件连接器配置和带有文件入站和出站端点的流)。另外:确认 Mule 有权从源目录中删除。
  • 我的配置文件 ​​

标签: file transfer mule


【解决方案1】:

您的文件端点缺少 pollingFrequency 属性,这意味着它使用默认值 1000 毫秒。这使得 Mule 轮询文件比 FTP 端点处理它们的速度更快。举个例子:

pollingFrequency="10000"

如果这还不够好,因为 FTP 上传具有不可预测的性能(因此 Mule 仍然重试正在上传的文件),那么 如果您的文件足够小以适合内存,请尝试添加:

<object-to-byte-array-transformer />

在您的入站和出站端点之间。这会在尝试 FTP 上传之前将文件加载到内存中并立即将其移动到 outbound.input.backup.path。当然,如果 FTP 上传失败,你必须将文件移回 outbound.input.path...

【讨论】:

  • 添加 pollingFrequency 属性可以解决问题。另外我将尝试使用 以最佳方式处理它。谢谢大卫。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多