我目前在Storm拓扑中使用Esper,并且我知道有一个名为update()的方法回调,当Esper产生结果时会调用它。
我一直在想,如果Esper引擎本身出现错误会发生什么。
是否有可以覆盖并捕获Exception的错误回调?
或者,我最好的选择是简单地将sendEvent()调用包装在try-catch中,然后相应地处理Exception?
发布于 2014-05-28 22:39:34
在进一步阅读之后,我可以看到Esper有异常处理的概念:
http://esper.codehaus.org/esper-4.2.0/doc/reference/en/html/configuration.html#config-engine-exceptionhandling
这应该可以满足我的用例,并捕获任何Esper内部异常。
发布于 2014-05-30 19:30:07
是的,Esper为Exception Handling提供了一种方法。
您可以注册一个或多个异常处理程序,以便引擎在处理连续执行的语句时遇到异常时进行调用
您可以像下面这样注册ExceptionHandlerFactory。
Configuration config = new Configuration();
config.getEngineDefaults().getExceptionHandling().addClass(MyCEPEngineExceptionHandlerFactory.class);您应该在引擎默认配置中给出实现com.espertech.esper.client.hook.ExceptionHandlerFactory接口的每个类的全限定类名。
有关更多详细信息,请阅读documentation。。
https://stackoverflow.com/questions/23914521
复制相似问题