【问题标题】:Drools session share the same working memory?Drools 会话共享相同的工作记忆?
【发布时间】:2018-11-27 09:38:30
【问题描述】:

当应用程序创建多个状态完整的 kie 会话时,它们是共享相同的工作内存还是具有单独的工作内存。因此,如果在一个会话中插入了一个事实,那么它在另一个会话中是否可用。

【问题讨论】:

    标签: drools rule-engine business-rules


    【解决方案1】:

    A KieSession 工作记忆。您可以从一个 KieBase 创建多个独立的 KieSessions,但如果您想将事实广播到多个会话,您需要自己实现该机制。

    希望对你有帮助,

    【讨论】:

    • 我的应用程序以异步方式创建多个会话。每个会话都有两类被触发的规则。在第一组规则中,所有需要的数据库对象都被加载到工作内存中,第二组规则使用在前一组规则中加载的对象作为条件。
    • 因此会话 0 规则(第二组规则)进行 db 调用以将对象保存在 DB 中。在对象保存在数据库中之前,会话 1 规则(第一组规则)被触发,并且由于对象未保存在数据库中,它不会将事实插入会话 1 的工作内存中。因此会话 1 规则(第二组规则)规则),再次保存相同的数据集(已由会话 0 规则插入)
    • 从规则中保存数据库中数据的过程也是异步的。它只是将数据发送到数据库服务队列,不等待任何响应。
    猜你喜欢
    • 1970-01-01
    • 2010-11-22
    • 2011-03-03
    • 2020-01-15
    • 2010-09-23
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多