从drools调用休息服务

时间:2016-04-20 05:24:24

标签: mule drools drools-guvnor drools-flow

我是流口水的新手,有一个场景,我需要从drools调用骡子流。我已经定义了如下的mule流程,并希望根据某些条件调用其中一个流程。

<flow name="Flow1">
    <http:listener config-ref="flw1" path="/check1" doc:name="Evaluation Srv" />

    <http:request config-ref="Proxy" path="/check1" method="GET" doc:name="basic validation" />
</flow>

<flow name="Flow2">
    <http:listener config-ref="flw1" path="/check2" doc:name="Notification" />

    <http:request config-ref="Proxy" path="/check2" method="GET" doc:name="Personal validation">
    </http:request>
</flow>

我有一个示例drools文件,如下所示

#default dialect for the semantic code will be MVEL
global org.mule.module.bpm.MessageService mule;

import com.mule.sbus.drools.RequestUrl

dialect "mvel"

declare RequestUrl
    @role(event)
end

rule "/check1"
    lock-on-active
when
    $url:RequestUrl(url=="check1")
then
    #invoke flow1
end

rule "/check2"
    lock-on-active
when
    $url:RequestUrl(url=="check2")
then
    #invoke flow 2
end

请让我知道如何从drools调用流程

1 个答案:

答案 0 :(得分:0)

如果您知道如何从Java调用它,那么您就知道如何从Drools调用它。规则的右侧(然后是部分)基本上是Java代码。 但有一点需要注意的是,Drools中规则的执行是单线程的。在规则中调用mule时,不会执行/评估其他规则。

一个选项是使用异步执行程序。

希望它有所帮助,