我们正在使用drools并允许我们的用户输入他们自己的drools规则条件和后果。但是,为了使整个drools的东西更可靠,我们需要确保没有无限循环或其他阻塞事物阻塞整个系统。
对于规则循环(规则A - >规则B - >规则A - > ...),我们采取了措施。但是,仍然可以使用类似
的内容$('#datepicker').datepicker("setDate", "03/15/2016")
问题是我们无法使用黑名单或其他东西避免所有这些,所以我们需要一个流氓措施来做到这一点。
在当前的KnowledgeSession上使用for(int i=0; i<1000000; i++) {
doSomething();
}
并不会中止后果部分。 session.halt()
会导致后果运行,即使会话已经死了,这不是我们需要的。
我也没有找到一些&#34;最长执行时间&#34;,这可能会限制在终止之前允许执行结果的时间。
还试图在beforeActivationFired中添加一个钩子,它启动一个线程,等待10秒然后使用session.dispose()
以及从kBase中删除规则。无济于事,规则后果继续存在。
任何想法都会有所帮助。