2016-04-20 9 views
0

Ich bin neu zu drools, und habe ein Szenario, wo ich einen Maultierfluss von drools aufrufen muss. Ich habe Mule-Flows wie unten definiert und möchte einen der Flow basierend auf einer Bedingung aufrufen.rufen Rest Service von drools

<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> 

Ich habe eine Probe drools Datei, wie unten

#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 

Bitte lassen Sie mich wissen, wie die Strömung von drools

Antwort

0

aufrufen Wenn Sie wissen, wie es aus Java aufrufen, können Sie dann weiß, wie man es von Drools anspricht. Die rechte Seite (dann Teil) einer Regel ist im Grunde Java-Code. Eine Sache zu beachten ist jedoch, dass die Ausführung der Regeln in Drools single-threaded ist. Während Sie mule in einer Regel aufrufen, werden keine anderen Regeln ausgeführt/ausgewertet.

Eine Option wäre die Verwendung eines asynchronen Executors.

Hoffe, dass es hilft,

+0

Bitte helfen Sie mir mit einer Probe –

+0

Haben Sie die erforderlichen Java-Code diese Mule Flow aufzurufen? –