我目前在Storm拓扑中使用Esper,我知道有一个名为update()
的方法回调,当Esper产生结果时会调用它。
我一直想知道如果Esper引擎本身出现错误会发生什么。
是否存在我可以覆盖并捕获Exception
的错误回调?
或者我最好将sendEvent()
来电包裹在try-catch
中,然后相应地处理Exception
?
答案 0 :(得分:1)
进一步阅读后,我可以看到Esper有异常处理的概念:
这应该满足我的用例并捕获任何内部的Esper异常。
答案 1 :(得分:1)
是的,Esper为Exception Handling提供了一种方式。
如果引擎遇到处理连续执行语句的异常,您可以为引擎注册一个或多个异常处理程序
您可以像下面一样注册ExceptionHandlerFactory。
Configuration config = new Configuration();
config.getEngineDefaults().getExceptionHandling().addClass(MyCEPEngineExceptionHandlerFactory.class);
您应该在引擎默认配置中提供实现com.espertech.esper.client.hook.ExceptionHandlerFactory
接口的每个类的完全限定类名。
有关详细信息,请阅读documentation。 。