Java 规则引擎或事件处理

Java 规则引擎或事件处理,java,events,rules,drools,esper,Java,Events,Rules,Drools,Esper,我有一个客户管理系统,企业使用它来存储客户数据和一些其他信息。我希望我的系统在以下几种情况下向用户(企业主)发送电子邮件: 如果在注册一周后,用户(业务负责人)没有在系统中输入客户-向他发送电子邮件,提醒他添加客户。将此作为每周/每月的提醒 如果用户达到一个里程碑(例如,系统中有100名客户),请向他发送一封祝贺电子邮件,但如果他再次达到同一里程碑(例如,通过删除和添加),请不要发送 编辑-3。在假期前一周发送一封“节日快乐”电子邮件(给出此示例主要是因为它是最简单的一封,说明了对事件属性的依赖

我有一个客户管理系统,企业使用它来存储客户数据和一些其他信息。我希望我的系统在以下几种情况下向用户(企业主)发送电子邮件:

  • 如果在注册一周后,用户(业务负责人)没有在系统中输入客户-向他发送电子邮件,提醒他添加客户。将此作为每周/每月的提醒

  • 如果用户达到一个里程碑(例如,系统中有100名客户),请向他发送一封祝贺电子邮件,但如果他再次达到同一里程碑(例如,通过删除和添加),请不要发送

  • 编辑-3。在假期前一周发送一封“节日快乐”电子邮件(给出此示例主要是因为它是最简单的一封,说明了对事件属性的依赖性,而不是对用户的依赖性)

    我需要一个系统,它允许根据以前/将来的事件(将来的事件有一个已知的日期)和用户属性轻松添加规则。我读了一些关于我的问题,但仍然不确定我的问题属于哪一类

    如果能听到关于我可以使用的规则\事件处理模块的具体建议,我将非常高兴。我想要么,要么,但两者看起来都很复杂,我想在投入时间将它们添加到我的系统之前,确保它是正确的


    如果有必要的话,我会使用Java和Hibernate。

    为什么不让它简洁明了呢?创建自己的规则引擎并通过XML配置规则?对于使用框架的需求来说,您的需求是非常直接的。这是可能的,但感觉有点像是重新发明了一个轮子,可能会遇到一个可靠的现有框架已经处理过的所有可能的陷阱。上面的例子是基本的说明,但如果系统增长,规则可能会变得更加多样化,例如,需要使用sum/avg或基于先前事件的触发等函数。Drools不是隐式有效的。如果你做得不对,你可能得不到想要的表现。此外,无论您是否使用Drools,您都永远无法开发出一个经得起未来考验的系统。您不可能考虑将来可能需要配置的所有可能类型的规则,包括或不包括Drools。这些规则看起来比规则引擎更容易由调度引擎完成。您有一点,但事件处理引擎(例如Esper)不也是隐式的调度引擎吗?纯规则引擎似乎不太合适,同意你的观点。编辑-由于规则是基于事件和用户属性的,我确实觉得我们需要的不仅仅是一个简单的调度器。为什么不保持它的简洁呢?创建自己的规则引擎并通过XML配置规则?对于使用框架的需求来说,您的需求是非常直接的。这是可能的,但感觉有点像是重新发明了一个轮子,可能会遇到一个可靠的现有框架已经处理过的所有可能的陷阱。上面的例子是基本的说明,但如果系统增长,规则可能会变得更加多样化,例如,需要使用sum/avg或基于先前事件的触发等函数。Drools不是隐式有效的。如果你做得不对,你可能得不到想要的表现。此外,无论您是否使用Drools,您都永远无法开发出一个经得起未来考验的系统。您不可能考虑将来可能需要配置的所有可能类型的规则,包括或不包括Drools。这些规则看起来比规则引擎更容易由调度引擎完成。您有一点,但事件处理引擎(例如Esper)不也是隐式的调度引擎吗?纯规则引擎似乎不太合适,同意你的观点。编辑-由于规则基于事件和用户属性,我确实觉得我们需要的不仅仅是一个简单的调度器。