2017-01-30 8 views
0

Я использую Anypoint Studio 6.1 и Mule 3.8.1 и имею стратегию кэширования управляемых хранилищем мула, которая использует генерацию ключа события по умолчанию.Как получить ключ события кэша от Mule

Как я могу получить значение этого ключа в потоке? Где он хранится?

Благодаря

ответ

1

По умолчанию генератор обеспечивает 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 по умолчанию