我有一个应用程序,这将需要一个“动态业务规则”引擎。某些业务规则更改非常频繁。然后,其中一些人申请有限的商业账户。例如:我的客户有一个流程,他们根据门店的大小、销售人员的数量、产品的数量、位置等来确定门店的资格。但他管理着不同的账户,每个账户为每个属性赋予了不同的“权重”。
如何使用Ruby实现此引擎?我知道Java有drools,但我发现drools很烦人,也很复杂。而且我更喜欢不用使用JRuby...
致以敬意,
Rubem
发布于 2010-11-22 12:39:38
如果您确定规则引擎是您需要的,那么您需要找到一个可以在Ruby中使用的引擎。在谷歌上快速搜索一下,就会找到Rools (http://rools.rubyforge.org/)和Ruby Rules (http://xircles.codehaus.org/projects/ruby-rules)。不过,我不确定这两个项目的状态。结合使用JRuby和Drools可能是您最好的选择,但话又说回来,我是一名Java开发人员,也是Drools的忠实拥护者。:)
在不了解所有细节的情况下,很难说应该如何实现。它还取决于您希望如何更新规则。一种方法是编写一个类似如下的规则集合:“如果一个商店的销售人员超过50人,并且该商店还没有更新其权重以反映这一点,则更新该商店的权重。”但是,在某种程度上,您可以将其与硬编码进行比较。
一种更好的方法可能是创建具有权重应用所需满足的标准的权重对象。然后,您可以编写一条在Weight和Stores上都匹配的规则:“如果一家Store与某个Weight的标准匹配,并且该Store还没有为其分配该权重,则将该Weight添加到Store。”然后,业务人员可以只创建和更新权重,可能是在web前端数据库中,而不是维护规则。
https://stackoverflow.com/questions/4104122
复制相似问题