0

我正在 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 和 Expiration Interval。

如果你能指导我的方法会更有帮助

  1. 清除缓存(找不到任何与清除缓存相关的文档 mule 4)
  2. 我如何将其保留为非私有对象存储并定义诸如 entryTtl、maxEntries 等参数。
  3. 我们什么时候需要使用私有对象存储?

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

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

4

2 回答 2

0

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

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

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

3) 使用说明:缓存范围和“无效缓存”处理器应该共享相同的 Caching_Strategy)。

4) In order to explicitly define object store and ttl for a Cache Scope, please ensure object store related modules are added to the project. This can be done by simply adding a 'Store' processor in your mule flow, this will add all necessary modules to your mule application. Then, on the Caching Strategy, General > Reference > Object Store, you can select Edit Inline and define your object store with explicit settings such as - Max entries - Entry ttl - Expiration interval You can remove the unused 'Store' processor as well.

Hope it helps others

于 2020-03-09T08:24:41.300 回答
0

There is a palette called invalidate cache in the latest Mule versions. You can simply use it to delete the cache for a cache scope.

You will require a private object store when you want to persist the key used for caching permanently and also to implement time limits like TTL for a cache.

于 2020-05-11T14:40:39.363 回答