我正在实现一个监听器类,它侦听一些事件然后处理它们。如果此事件的处理进行得顺利,则不会再次通知此事件,但是如果发生任何异常事件,将在一段时间后再次通知给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