【发布时间】:2021-05-31 19:43:02
【问题描述】:
为什么我们要在 mule 4 中使用 remove 变量转换器? 因为每个流程在被调用时都有自己的新变量副本,这意味着在流程完成执行后,这些变量会被 mule 自己销毁。
为了验证这个理论,我创建了一个 Mule 流:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="955e025a-379f-49f5-8623-b79b70dedf94" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="remove-variable-exampleFlow" doc:id="7f545df1-b0cf-4b86-bbcc-cba1f9d0a322" >
<http:listener doc:name="Listener" doc:id="7d4a9fa8-9760-478a-b75b-0f205ec81ba6" config-ref="HTTP_Listener_config" path="/create"/>
<logger level="INFO" doc:name="Log request arrived" doc:id="6e1d8be9-ac47-4f51-8c17-fd114fe583d5" message='#["Request arrived, Value of temp before initilaization : " ++ (vars.temp default "")]'/>
<set-variable value='#["Random value : " ++ (random()*1000)]' doc:name="Set Temp" doc:id="20de7738-a476-46e6-a442-3a5435092d68" variableName="temp"/>
<logger level="INFO" doc:name="Logger" doc:id="058eaa05-90c9-49c0-b853-9286a01191a0" message='#["Request arrived, Value of temp after initilaization : " ++ vars.temp]'/>
</flow>
</mule>
我每次打电话的结果都是:
org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request arrived, Value of temp before initilaization :
org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request arrived, Value of temp after initilaization : Random value : 588.1040740493614
org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request arrived, Value of temp before initilaization :
org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request arrived, Value of temp after initilaization : Random value : 582.2399134793665
org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request arrived, Value of temp before initilaization :
org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request arrived, Value of temp after initilaization : Random value : 743.1259073180681
org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request arrived, Value of temp before initilaization :
org.mule.runtime.core.internal.processor.LoggerMessageProcessor: Request arrived, Value of temp after initilaization : Random value : 526.9686552199496
那么在 Mule 4 中使用 Remove variable transformer 有什么好处呢?
【问题讨论】:
标签: mule4