Mule 文件传输不删除源文件

发布于 2024-12-21 19:03:36 字数 821 浏览 4 评论 0原文

我正在使用 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>

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

I am using Mule 3.2 and I am moving files from one location to another location. The error/problem is that Mule keeps on processing the same files again and again and do not deleted them.

The console displays:

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

My config file is below:

<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>

I could not find the root cause for this problem. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

执手闯天涯 2024-12-28 19:03:36

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

pollingFrequency="10000"

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

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

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

Your file endpoint misses a pollingFrequency attributes, which means it uses the default of 1000ms. This makes Mule poll files way faster than the FTP endpoint can process them. Try for example:

pollingFrequency="10000"

If this is not good enough because the FTP upload has unpredictable performances (so Mule still retries a file that is being uploaded), then if your files are small enough to fit in memory, try adding:

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

between your inbound and outbound endpoint. This loads the file in-memory and moves it right away to outbound.input.backup.path, before trying the FTP upload. Of course, if the FTP upload fails, you'll have to move the file back to outbound.input.path...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文