我正在實現一個監聽器類,它偵聽一些事件然後處理它們。如果此事件的處理進行得順利,則不會再次通知此事件,但是如果發生任何異常事件,將在一段時間後再次通知給MyBeanImplementation類,並且可以再次嘗試處理它。一個bean的多個實例
下面的代碼工作正常,但由於此事件處理可能需要一些時間,
1.我想擁有多個偵聽器。
2.限制服務的調用次數,可能是使用線程池。
如何讓多個偵聽器以不同的方式處理每個事件?我對Spring很陌生,如果這甚至可能,我也不知道。
繼承人是一個例子:
// Spring配置文件:
<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);
}
}
}
感謝
謝謝nobeh。你的第一種方法不適用於我的情況,因爲不需要實現不同的事件監聽器。但使用Spring任務執行的第二種方法在我的用例中看起來很好。我會嘗試執行任務,看看是否適合我。 – AndyT 2012-03-31 02:21:45