如何从 Mule 获取缓存事件键
How to get the Cache Event Key from Mule
我正在使用 Anypoint Studio 6.1 和 Mule 3.8.1,并且有一个使用默认事件密钥生成的 mule 管理的存储缓存策略。
如何在流中获取此键的值?它存储在哪里?
谢谢
默认情况下,如果您没有在缓存中提供密钥生成器表达式,生成器会提供 SHA 256 hash
作为密钥。
参考:- https://github.com/mulesoft/mule/blob/mule-3.x/core/src/main/java/org/mule/keygenerator/SHA256MuleEventKeyGenerator.java
此生成器计算 当前消息 字节负载的 SHA 256 hash
。
您可以使用以下示例获取流的缓存键列表:-
<ee:object-store-caching-strategy name="cachingStrategy" doc:name="cachingStrategy">
<managed-store storeName="myNonPersistentManagedObjectStore" maxEntries="-1" entryTTL="20000" expirationInterval="5000"/>
</ee:object-store-caching-strategy>
<flow name="keylist" doc:name="keylist">
<http:listener config-ref="HTTP_Listener_Configuration" path="/getkeyvalue" doc:name="HTTP"/>
<scripting:component doc:name="Initialise Database">
<scripting:script engine="Groovy">
<scripting:text><![CDATA[
def keyValues = [];
for(a=0;a<muleContext.getRegistry().lookupObject("cachingStrategy").getStore().allKeys().size();a++)
{
keyValues = muleContext.getRegistry().lookupObject("cachingStrategy").getStore().allKeys().get(a);
}
if(keyValues.isEmpty())
{
return "Key is either null or expired !!!";
}
else
{
return "KeysList " + muleContext.getRegistry().lookupObject("cachingStrategy").getStore().allKeys().toString();
}
]]></scripting:text>
</scripting:script>
</scripting:component>
</flow>
每当您将一些消息放入缓存中时,使用上述流程,您可以获得缓存范围提供的 默认缓存键值 的所有列表 SHA 256 hash
默认
我正在使用 Anypoint Studio 6.1 和 Mule 3.8.1,并且有一个使用默认事件密钥生成的 mule 管理的存储缓存策略。
如何在流中获取此键的值?它存储在哪里?
谢谢
默认情况下,如果您没有在缓存中提供密钥生成器表达式,生成器会提供 SHA 256 hash
作为密钥。
参考:- https://github.com/mulesoft/mule/blob/mule-3.x/core/src/main/java/org/mule/keygenerator/SHA256MuleEventKeyGenerator.java
此生成器计算 当前消息 字节负载的 SHA 256 hash
。
您可以使用以下示例获取流的缓存键列表:-
<ee:object-store-caching-strategy name="cachingStrategy" doc:name="cachingStrategy">
<managed-store storeName="myNonPersistentManagedObjectStore" maxEntries="-1" entryTTL="20000" expirationInterval="5000"/>
</ee:object-store-caching-strategy>
<flow name="keylist" doc:name="keylist">
<http:listener config-ref="HTTP_Listener_Configuration" path="/getkeyvalue" doc:name="HTTP"/>
<scripting:component doc:name="Initialise Database">
<scripting:script engine="Groovy">
<scripting:text><![CDATA[
def keyValues = [];
for(a=0;a<muleContext.getRegistry().lookupObject("cachingStrategy").getStore().allKeys().size();a++)
{
keyValues = muleContext.getRegistry().lookupObject("cachingStrategy").getStore().allKeys().get(a);
}
if(keyValues.isEmpty())
{
return "Key is either null or expired !!!";
}
else
{
return "KeysList " + muleContext.getRegistry().lookupObject("cachingStrategy").getStore().allKeys().toString();
}
]]></scripting:text>
</scripting:script>
</scripting:component>
</flow>
每当您将一些消息放入缓存中时,使用上述流程,您可以获得缓存范围提供的 默认缓存键值 的所有列表 SHA 256 hash
默认