我的终点/连接器现在正在我的应用程序中运行我需要从数据库中查找一些配置数据......
因此,一旦我在mule中启动我的应用程序,我想从数据库中获取数据并将其存储在内存中,我希望它每隔几分钟刷新一次数据...
然后我的主要业务逻辑可以在Cache内存中查找数据,而不是一直点击DB ......
答案 0 :(得分:0)
您可以使用muleregistry来存储信息。假如您想每10分钟刷新一次数据。以下是要实施的步骤。第1步和第2步是同一流程的一部分。
1. Create database component inside poll component with frequency of 10 mins.
<poll doc:name="Poll">
<fixed-frequency-scheduler frequency="10" timeUnit="MINUTES"/>
<!--Place db component here-->
</poll>
2. Once step 1 is completed store the value retrieved in step 1 inside muleregistry. Below is example code to set key value using groovy.
<scripting:component doc:name="Groovy">
<scripting:script engine="Groovy"><![CDATA[muleContext.getRegistry().registerObject('Key1', new String('Value1')]]></scripting:script>
</scripting:component>
3. Access value stored in muleregistry any where within application where mulecontext is available using MEL.
<set-variable variableName="keyVar" value="#[app.registry.get("Key1")]" mimeType="text/plain" doc:name="Variable"/>
现在,数据库中的值存储在流变量KeyVar中。业务逻辑总是需要从流变量KeyVar中读取值,该变量将定期更新。