Почему я не мог кэшировать переменную в MULE4? - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь кешировать варибал в mule4. Мой простой тестовый поток кеширования:

<ee:object-store-caching-strategy name="Caching_Strategy" doc:name="Caching Strategy" doc:id="9c17681c-81c3-4344-bd4f-7fda1e36a440">
        <os:private-object-store alias="token" persistent="false" entryTtl="100" expirationInterval="5" />
    </ee:object-store-caching-strategy>
<ee:cache doc:name="Cache" doc:id="b413ab46-e3e1-4eb0-ac40-0e5884e1438f" cachingStrategy-ref="Caching_Strategy">

            <set-variable value="500" doc:name="Set Variable" doc:id="97f4436c-98d3-4993-a4bc-b191282b8f16" variableName="cachevariable"/>
            <logger level="INFO" doc:name="Logger" doc:id="0a88f98d-ace9-4326-8d84-31fb7030b75a" message="inside cache"/>

        </ee:cache>
<logger level="INFO" doc:name="Logger" doc:id="d92550c2-041f-42ae-b3b5-62ea906ccbb0" message="#[vars.'cachevariable']"/>

В приведенном выше сценарии я пытаюсь кэшировать переменную с именем cachevariable при первом вызове. мой поток кэша получает совпадения, и журнал вне области кеширования печатает 500. Во втором вызове в течение минуты я получаю Null для cachevariable.

Почему?

Я использую anypointstudio 7.5 .1 со средой выполнения 4.1.3

1 Ответ

0 голосов
/ 28 мая 2020

Я использовал стратегию кеширования со ссылкой на хранилище объектов вместо частного:

<os:object-store name="customObjectStore" persistent="false" entryTtl="15" expirationInterval="15" expirationIntervalUnit="SECONDS" maxEntries="100"/>
<ee:object-store-caching-strategy  name="Caching_Strategy" doc:name="Caching Strategy" objectStore="customObjectStore" keyGenerationExpression="#[vars.id]" />

Также я рекомендую всегда устанавливать maxEntries.

Мой пример: в моем блоге: https://medium.com/@adobni / configuring-an-object-store-in-mule-4-5da609e3456a

...