2017-11-10 6 views
2

Apache Camelを使用してtomcatフォルダにファイルのキューを作成して、多くのデータを休憩サービスにPOSTします。エンドポイントが数日間利用できず、新しいファイルを作成し続けるためにディスクスペースを使い果たすとどうなりますか?これを防ぐ方法を教えてください。Apache Camel:ファイルの書き込み中に空きがないようにする

+1

そのについて、あなたは求めているものを広すぎる/あまりにも不明瞭。 –

答えて

5

カスタムを実装すると、ファイルを書き込む前に十分な空き領域があることを確認するために、カスタムPredicateを実装します。このような

何か:

private static final Predicate IS_ENOUGH_SPACE = exchange -> { 
    return new File(Paths.get("").toUri()).getUsableSpace() > 100*1024*1024; // 100MB 
}; 

public void configure() { 
    from("timer:simple?period=1000") 
     .choice().when(IS_ENOUGH_SPACE) 
       .to("file://myStuff") 
       .to("log:done") 
      .otherwise() 
       .to("log:supressed") // do some handling here, maybe pause route for while 
      .end(); 
} 
+0

すてきな解決策! xmlでこの述語を作成する方法はありますか? – Depzor

+1

Nvm、私はこれを使って達成しました:ブロック内 – Depzor

関連する問題