From 4411a325222dd52a438e5e47d92b87f81b661fb7 Mon Sep 17 00:00:00 2001 From: redkale Date: Thu, 13 Jun 2024 15:23:12 +0800 Subject: [PATCH] CachedActionFunc --- docs/cached.md | 22 +++++++++++ .../org/redkale/cached/CachedManager.java | 19 +++++++++ .../org/redkale/cached/spi/CachedAction.java | 29 ++++++++++++-- .../redkale/cached/spi/CachedActionFunc.java | 17 ++++++++ .../cached/spi/CachedAsmMethodBoost.java | 6 +-- .../cached/spi/CachedManagerService.java | 39 +++++++++++++++++-- .../redkale/net/http/RestDeleteMapping.java | 2 +- .../org/redkale/net/http/RestGetMapping.java | 2 +- .../redkale/net/http/RestPatchMapping.java | 2 +- .../org/redkale/net/http/RestPostMapping.java | 2 +- .../org/redkale/net/http/RestPutMapping.java | 2 +- 11 files changed, 127 insertions(+), 15 deletions(-) create mode 100644 src/main/java/org/redkale/cached/spi/CachedActionFunc.java diff --git a/docs/cached.md b/docs/cached.md index 7c24a646b..882ad87c8 100644 --- a/docs/cached.md +++ b/docs/cached.md @@ -51,6 +51,28 @@ } ``` +## 动态调整缓存时长 +  使用```@Resource```注入多个```CachedManager``` +```java + + @Resource + private CachedManager cachedManager; + + @Cached(key = "#{code}_#{map.id}", remoteExpire = "60", timeUnit = TimeUnit.MILLISECONDS) + public String getName(String code, Map map) { + return code + "-" + map; + } + + public void updateExpire() { + Duration expire = Duration.ofMillis(600); + cachedManager.acceptCachedAction("#{code}_#{map.id}", action -> { + //将缓存时长改成600毫秒,并开启本地缓存 + action.setLocalExpire(expire); + action.setRemoteExpire(expire); + }); + } +``` + ## 缓存配置 ```xml