如果异常,如何防止来自sftp的camel redeliver文件

时间:2017-11-01 16:12:37

标签: java spring exception-handling apache-camel spring-camel

我有以下驼峰配置:

from("file://" + FTP_FILES + "?idempotent=true")
.process(new Processor() {
     @Override
     public void process(Exchange exchange) throws Exception {
         throw new RuntimeException("test");             
     }
 }).onException(Exception.class).maximumRedeliveries(0);

此代码在无限循环中工作,并尝试处理相同的文件。

是否可以配置驼峰只是忽略异常?

P.S。

我也试过

.onException(RuntimeException.class).continued(true);

.onException(RuntimeException.class).handled(true)

但结果相同

P.S。

我只想要与此代码提供的行为相同:

from("file://" + FTP_FILES + "?idempotent=true")
.process(new Processor() {
     @Override
     public void process(Exchange exchange) throws Exception {
         try{ 
             throw new RuntimeException("test");
         } catch(RuntimeException e){
             // just ignore  
         }             
     }
 })

1 个答案:

答案 0 :(得分:0)

请参阅此单元测试,演示可以执行此操作:https://github.com/apache/camel/commit/fcd200c4e13c35bb9a63924bbc3e2d6a643c31cf

错误处理程序将捕获异常并处理它,文件使用者将文件视为已成功处理,并将文件移动到.camel子文件夹(默认行为)。