短期事实与长期事实

两种类型的事实会添加到规则引擎的工作内存中 — 短期事实和长期事实。

短期事实

短期事实特定于规则引擎的单个执行循环。 策略执行之后会自动从规则引擎的工作内存中取消短期事实。 如果在策略的规则引擎的两次执行循环之间数据发生了更改,则您所提交的数据将作为短期事实提交给规则引擎。

短期事实的示例有:

  • 作为参数提交到 Policy.Execute 方法的事实。

  • 作为参数提交到 “调用规则” 形状的事实。

  • 使用 Assert 函数通过规则的操作提交的事实。

长期事实

长期事实加载到规则引擎的工作内存中,可跨任意数量的执行循环使用。 通常情况下,长期事实的变化较慢,在策略的执行间隔中通常不会发生更改。 例如,您可能只想创建一次数据库连接,并想使用同一数据库连接多次执行策略。 实际上,短期事实和长期事实之间唯一的差别在于实现。

若要将事实作为长期事实提交,需要执行以下步骤:

  1. 创建实现 IFactRetriever 接口的事实检索器组件。 首次调用 UpdateFacts 方法时,创建事实并将其断言到规则引擎的工作内存中,并在必要时更新 UpdateFacts 方法的后续调用。

  2. 使用业务规则编辑器,将策略配置为使用事实检索器组件。

    有关创建事实检索器并在策略中使用它的详细信息,请参阅 如何创建事实检索器

另请参阅

事实