いくつかのイベントをリッスンして処理するリスナークラスを実装しています。このイベントの処理がうまくいく場合、このイベントは決して再度通知されませんが、何らかの例外イベントが発生した場合、MyBeanImplementationクラスに再度通知され、処理が再試行されます。Beanの複数のインスタンス
以下のコードは正常に動作しますが、このイベント処理には時間がかかることがありますので、
1.複数のリスナーが必要です。
2.サービスの呼び出し回数を制限します。スレッドプールを使用している可能性があります。
どのように各イベントを別々に処理する複数のリスナーを持つことができますか?私は春には新しく、これが可能かどうかはあまり考えていません。
相続人は一例です。
//春の構成:
<bean id="MyBean" class="MyBeanImplementation">
//サンプルクラス
public class MyBeanImplementation implements EventListener {
@override
public processEvent(Event event) throws EventProcessFailureException {
try {
// Validate event
validateEvent(event);
// Call another service to store part of information from this event
// This service takes some time to return success
boolean success = makeCallToServiceAndStoreInfo(event);
if(!success) {
throw new EventProcessFailureException("Error storing event information!");
}
} catch (Exception e) {
throw new EventProcessFailureException(e);
}
}
}
おかげで
ありがとうございました。あなたの最初のアプローチは私のケースでは動作しません。異なるイベントリスナを実装する必要はないからです。しかし、Springのタスク実行を使用する2番目のアプローチは、私のユースケースでは良いようです。私は仕事のエグゼキュータを試み、それが私のために働くかどうかを見ます。 – AndyT