1

キャメルの特定の要件に固執しています。一連のファイルを処理しています。例外が発生すると、例外キューにメッセージを送信し、例外キューから障害に関するメールを送信すると、機能が機能します。結構ですが、10通のメールを送信できなかった場合のように多くのメールを送信することになります。ルート全体が終了するのを待ってから例外キューを調べて送信するように、1通のメールのみを送信する方法はありますか。何が失敗したかを示す単一のメール(例外キューを処理することによって)

私は提案を受け付けています。

4

1 に答える 1

2

私はこのシナリオを 1 回実行する必要がありました (逆ですが、成功時にメールが送信されます)。便利な MySQL データベースを構成して準備ができていたので、各イベントをキューからデータベースに追加しました。その後、時々select * from events; delete from events;データベースからすべての情報を抽出 (および削除) し、メールを作成しました。

アグリゲーター パターンを使用してエラー キューを処理できます。これらのタスクには非常に便利です。http://camel.apache.org/aggregate-example.html . アグリゲーターがいつメッセージを送信する必要があるかを知る必要があります。可能であれば、上記のリンクの例のように、「完了、メールを送信」イベントをトリガーします。

最も簡単な方法は、これらのメール通知をスケジュールすることです。http://camel.apache.org/simplescheduledroutepolicy.htmlをご覧ください。適切な時間を選択してルートを実行するように設定できます。その後、起動したら、アグリエーターがタイムアウト時に完了するように設定し、タイムアウトを適切なキュー サイズのエラーを空にするのに十分な値にしますが、大きすぎないようにします。

少なくともそれはあなたの問題に対する私の提案です

于 2012-08-20T22:52:26.860 に答える