mule - 为什么我不能在 MULE4 中缓存变量?
问题描述
我试图在 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 for cachevariable
.
这是为什么?
我将 anypointstudio 7.5.1 与运行时 4.1.3 一起使用
解决方案
我使用了引用对象存储的缓存策略,而不是使用私有的:
<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
推荐阅读
- flutter - 如何修复这个颤振错误'package:flutter/scr/painting/image_resolution.dart''assetName!= null'不正确
- java - Java 8 从其他中删除 1 个列表
- javascript - 如何在 TICTACTOE 游戏中查看获胜者?JavaScript
- hive - Hive 中 rand() 函数的精度?
- angular - 在 angular9 中使用 jasmine karma 进行 ag-grid 单元测试
- mongodb - MongoDB 插入 - 未捕获的异常:SyntaxError: missing ) after argument list :
- protobuf-net - 意外的子类型
- python - 我有一个程序在 Python 中“暴力破解”一个方程,有没有办法让它更快?
- html - 添加 HTML 的动态列
- wordpress - 无法在 Wordpress 树枝中显示带有 html 源标记的图像