【问题标题】:Mule 4 : What is the advantage of Remove variable Transformer?骡子4:Remove variable Transformer有什么好处?
【发布时间】: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


    【解决方案1】:

    在比较方案时,优势是有意义的。在您的特定示例中,没有,因为流程太简单并且不需要它,而且您没有与其他任何东西进行比较。但是,在更复杂的应用程序中,您可能需要在执行其他操作之前删除变量。例如,如果您重用相同的变量,或者如果变量的存在被用作条件的标志。

    正如您所说,它不用于在流(事件)执行完成时清除变量。那是不需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      相关资源
      最近更新 更多