【问题标题】:How to release lock of file (camel exchange) to move it on exception (corrupted gz file)如何释放文件锁定(骆驼交换)以将其移动到异常(损坏的 gz 文件)
【发布时间】:2014-08-13 03:31:59
【问题描述】:

我需要实现一个对ZipException 做出反应的处理程序以移走损坏的 gz 文件,否则路由将无休止地重试解组 gz。

问题是在抛出异常的那一刻,这个文件有一个锁(在linux上canWrite()返回false)并且有骆驼锁文件。

是否有一种优雅的骆驼方式来说/配置 onException 释放锁(获取写访问权限并删除锁文件 - 如果有的话)?

目前我的代码如下所示:

onException(ZipException.class)
    .handled(true)
    .process(corruptedFileProcessor)
    .stop(); 

提前致谢。

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

    以下路由从 srcDir 读取 gzip 压缩文件,将解压缩文件写入 destDir(不带 .gz 扩展名),当发生 ZipException 时,将文件发送到 errorDir。

    from("file://srcDir/?delete=true")
            .onException(ZipException.class)
            .handled(true).useOriginalMessage()
            .to("file://errorDir?autoCreate=true")
            .end()
    .unmarshal().gzip()
    .to("file://destDir?autoCreate=true&fileName=${file:name.noext}");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多