清除 Mule 4 中的缓存范围和私有对象存储

Clear the Cache Scope and Private object store in Mule 4

我正在 Mule 4 中构建应用程序以缓存来自 http 请求组件的响应(1 小时)。我使用响应来验证 jwt。每当出现故障时,我需要清除缓存并重新调用 http 请求。使用的组件是:缓存范围

我当前的代码如下所示:-

<ee:object-store-caching-strategy name="Caching_Strategy" doc:name="Caching Strategy" doc:id="50e44473-b55a-4bc3-b53a-18e4229a31a3" keyGenerationExpression="#['token']" >
        <os:private-object-store persistent="false" maxEntries="${caching.maxEntries}" entryTtl="${caching.entryTtl}" expirationInterval="${caching.expirationInterval}" />
    </ee:object-store-caching-strategy> 

我没有任何特定要求使其成为私有对象存储,但禁用它不允许我配置 maxEntries、entryTTL 和过期间隔。

如果你能指导我

的方法会更有帮助
  1. 清除缓存(找不到任何与清除缓存相关的 docs mule 4)
  2. 我怎样才能将它保留为非私有对象存储并定义那些参数,如 entryTtl、maxEntries 等
  3. 我们什么时候需要使用私有对象存储?

我已经尝试过配置缓存的交换示例(但没有提到清除缓存)。

我正在使用 Mule Runtime 4.2.2 和 On Prem Mule

我已向 Mulesoft 提出支持请求并收到以下回复

1) 使缓存无效仅显示在 Anypoint Studio 版本 7.4.1 的调色板中。在早期版本的工作室中没有显示。(我使用的是 7.3.2)

2) 他们正在为 Mule 4 中的无效缓存添加文档。

3) 使用说明:缓存作用域和 'Invalidate Cache' 处理器应共享相同的 Caching_Strategy)。

4) 为了明确定义缓存范围的对象存储和ttl,请确保将对象存储相关模块添加到项目中。 这可以通过简单地在你的 mule 流中添加一个 'Store' 处理器来完成,这会将所有必要的模块添加到你的 mule 应用程序中。 然后,在缓存策略上,常规 > 参考 > 对象存储,您可以 select 编辑内联并使用显式设置定义您的对象存储,例如 - 最大条目 - 输入ttl - 到期间隔 您也可以删除未使用的 'Store' 处理器。

希望对别人有帮助

在最新的 Mule 版本中有一个名为 invalidate cache 的调色板。您可以简单地使用它来删除缓存范围的缓存。

当您想要永久保留用于缓存的密钥并实现时间限制(如缓存的 TTL)时,您将需要一个私有对象存储。