增加Cached.name属性
This commit is contained in:
@@ -27,56 +27,57 @@ public class CachedInstance implements Service {
|
||||
|
||||
// 修改远程缓存的key值
|
||||
public void updateName(String code, Map<String, Long> map) {
|
||||
cachedManager.remoteSetString(code + "_" + map.get("id"), code + "-" + map, Duration.ofMillis(60));
|
||||
cachedManager.remoteSetString("name", code + "_" + map.get("id"), code + "-" + map, Duration.ofMillis(60));
|
||||
}
|
||||
|
||||
@Cached(key = "#{code}_#{map.id}", remoteExpire = "60", timeUnit = TimeUnit.MILLISECONDS)
|
||||
@Cached(name = "code", key = "#{code}_#{map.id}", remoteExpire = "60", timeUnit = TimeUnit.MILLISECONDS)
|
||||
public String getName(String code, Map<String, Long> map) {
|
||||
return code + "-" + map;
|
||||
}
|
||||
|
||||
@Cached(key = "name", localExpire = "30")
|
||||
@Cached(name = "name", key = "name", localExpire = "30")
|
||||
public String getName() {
|
||||
return "haha";
|
||||
}
|
||||
|
||||
public void updateName(String val) {
|
||||
cachedManager.bothSet("name_2", String.class, val, Duration.ofSeconds(31), Duration.ofSeconds(60));
|
||||
public void updateName2(String val) {
|
||||
cachedManager.bothSet("name2", "name_2", String.class, val, Duration.ofSeconds(31), Duration.ofSeconds(60));
|
||||
}
|
||||
|
||||
@Cached(key = "name_2", localExpire = "31", remoteExpire = "60")
|
||||
@Cached(name = "name2", key = "name_2", localExpire = "31", remoteExpire = "60")
|
||||
public String getName2() throws RedkaleException {
|
||||
return "haha";
|
||||
}
|
||||
|
||||
@Cached(key = "dictcode", localExpire = "30", remoteExpire = "60")
|
||||
@Cached(name = "dictcode", key = "dictcode", localExpire = "30", remoteExpire = "60")
|
||||
public CompletableFuture<String> getDictcodeAsync() {
|
||||
System.out.println("执行了 getDictcodeAsync");
|
||||
return CompletableFuture.completedFuture("code001");
|
||||
}
|
||||
|
||||
@Cached(key = "name", localExpire = "30")
|
||||
@Cached(name = "name", key = "name", localExpire = "30")
|
||||
public CompletableFuture<String> getNameAsync() {
|
||||
return CompletableFuture.completedFuture("nameAsync");
|
||||
}
|
||||
|
||||
@Cached(key = "name", localExpire = "30", remoteExpire = "60")
|
||||
@Cached(name = "name", key = "name", localExpire = "30", remoteExpire = "60")
|
||||
public CompletableFuture<String> getName2Async() throws IOException, InstantiationException {
|
||||
return CompletableFuture.completedFuture("name2Async");
|
||||
}
|
||||
|
||||
@Cached(key = "info_#{id}_file#{files.one}", localExpire = "30", remoteExpire = "60")
|
||||
@Cached(name = "info", key = "#{id}_#{files.one}", localExpire = "30", remoteExpire = "60")
|
||||
public File getInfo(ParamBean bean, int id, List<String> idList, Map<String, File> files) {
|
||||
return new File("aa.txt");
|
||||
}
|
||||
|
||||
@Cached(key = "info_#{id}_file#{files.one}", localExpire = "30", remoteExpire = "60")
|
||||
@Cached(name = "info", key = "#{id}_#{files.one}", localExpire = "30", remoteExpire = "60")
|
||||
public CompletableFuture<File> getInfoAsync(ParamBean bean, int id, List<String> idList, Map<String, File> files) {
|
||||
return CompletableFuture.completedFuture(new File("aa.txt"));
|
||||
}
|
||||
|
||||
@Cached(
|
||||
key = "info_#{id}_file#{files.one}",
|
||||
name = "info",
|
||||
key = "#{id}_#{files.one}",
|
||||
localExpire = "30",
|
||||
remoteExpire = "60",
|
||||
timeUnit = TimeUnit.MILLISECONDS)
|
||||
|
||||
@@ -83,12 +83,12 @@ public class CachedInstanceTest {
|
||||
System.out.println("instance1.manager = " + instance.getCachedManager());
|
||||
System.out.println("instance2.manager = " + instance2.getCachedManager());
|
||||
manager.updateBroadcastable(false);
|
||||
instance.updateName("gege");
|
||||
instance.updateName2("gege");
|
||||
Assertions.assertEquals("gege", instance.getName2());
|
||||
Assertions.assertEquals("haha", instance2.getName2());
|
||||
manager.updateBroadcastable(true);
|
||||
System.out.println("准备设置 updateName");
|
||||
instance.updateName("gege");
|
||||
instance.updateName2("gege");
|
||||
System.out.println("设置结束 updateName");
|
||||
Utility.sleep(10);
|
||||
Assertions.assertEquals("gege", instance.getName2());
|
||||
|
||||
@@ -37,22 +37,22 @@ public class CachedManagerTest {
|
||||
@Test
|
||||
public void run1() throws Exception {
|
||||
Duration expire = Duration.ofMillis(290);
|
||||
manager.localSetString("cached-schema:name:haha", "myha", expire);
|
||||
Assertions.assertEquals(manager.localGetString("cached-schema:name:haha"), "myha");
|
||||
manager.localSetString("name", "haha", "myha", expire);
|
||||
Assertions.assertEquals(manager.localGetString("name", "haha"), "myha");
|
||||
Utility.sleep(300);
|
||||
Assertions.assertTrue(manager.localGetString("cached-schema:name:haha") == null);
|
||||
Assertions.assertTrue(manager.localGetString("name", "haha") == null);
|
||||
|
||||
CachingBean bean = new CachingBean();
|
||||
bean.setName("tom");
|
||||
bean.setRemark("这是名字备注");
|
||||
|
||||
String json = bean.toString();
|
||||
manager.localSet(bean.getName(), CachingBean.class, bean, expire);
|
||||
manager.localSet("name", bean.getName(), CachingBean.class, bean, expire);
|
||||
Assertions.assertEquals(
|
||||
manager.localGet(bean.getName(), CachingBean.class).toString(), json);
|
||||
manager.localGet("name", bean.getName(), CachingBean.class).toString(), json);
|
||||
bean.setRemark(bean.getRemark() + "-新备注");
|
||||
Assertions.assertEquals(
|
||||
manager.localGet(bean.getName(), CachingBean.class).toString(), json);
|
||||
manager.localGet("name", bean.getName(), CachingBean.class).toString(), json);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -67,7 +67,13 @@ public class CachedManagerTest {
|
||||
for (int i = 0; i < count; i++) {
|
||||
new Thread(() -> {
|
||||
manager.bothGetSet(
|
||||
"name", String.class, false, localExpire, remoteExpire, () -> bean.getName());
|
||||
"name",
|
||||
"name",
|
||||
String.class,
|
||||
false,
|
||||
localExpire,
|
||||
remoteExpire,
|
||||
() -> bean.getName());
|
||||
cdl.countDown();
|
||||
})
|
||||
.start();
|
||||
@@ -76,7 +82,7 @@ public class CachedManagerTest {
|
||||
}
|
||||
Assertions.assertEquals(1, ParallelBean.c1.get());
|
||||
Utility.sleep(200);
|
||||
manager.bothGetSet("name", String.class, false, localExpire, remoteExpire, () -> bean.getName());
|
||||
manager.bothGetSet("name", "name", String.class, false, localExpire, remoteExpire, () -> bean.getName());
|
||||
Assertions.assertEquals(1, ParallelBean.c1.get());
|
||||
Utility.sleep(300);
|
||||
{
|
||||
@@ -84,7 +90,13 @@ public class CachedManagerTest {
|
||||
for (int i = 0; i < count; i++) {
|
||||
new Thread(() -> {
|
||||
manager.bothGetSet(
|
||||
"name", String.class, false, localExpire, remoteExpire, () -> bean.getName());
|
||||
"name",
|
||||
"name",
|
||||
String.class,
|
||||
false,
|
||||
localExpire,
|
||||
remoteExpire,
|
||||
() -> bean.getName());
|
||||
cdl.countDown();
|
||||
})
|
||||
.start();
|
||||
|
||||
@@ -46,6 +46,7 @@ public class _DynLocalCacheInstance extends CachedInstance {
|
||||
@DynForCached(
|
||||
dynField = "_redkale_getNameCachedAction1",
|
||||
manager = "",
|
||||
name = "name",
|
||||
key = "name",
|
||||
nullable = false,
|
||||
timeUnit = TimeUnit.SECONDS,
|
||||
@@ -63,7 +64,8 @@ public class _DynLocalCacheInstance extends CachedInstance {
|
||||
@DynForCached(
|
||||
dynField = "_redkale_getInfoCachedAction2",
|
||||
manager = "",
|
||||
key = "info_#{id}_file#{files.one}",
|
||||
name = "info",
|
||||
key = "#{id}_#{files.one}",
|
||||
nullable = false,
|
||||
timeUnit = TimeUnit.SECONDS,
|
||||
remoteExpire = "60",
|
||||
@@ -81,6 +83,7 @@ public class _DynLocalCacheInstance extends CachedInstance {
|
||||
@DynForCached(
|
||||
dynField = "_redkale_getNameAsyncCachedAction3",
|
||||
manager = "",
|
||||
name = "name",
|
||||
key = "name",
|
||||
nullable = false,
|
||||
timeUnit = TimeUnit.SECONDS,
|
||||
@@ -98,7 +101,8 @@ public class _DynLocalCacheInstance extends CachedInstance {
|
||||
@DynForCached(
|
||||
dynField = "_redkale_getInfo2AsyncCachedAction4",
|
||||
manager = "",
|
||||
key = "info_#{id}_file#{files.one}",
|
||||
name = "info",
|
||||
key = "#{id}_#{files.one}",
|
||||
nullable = false,
|
||||
timeUnit = TimeUnit.SECONDS,
|
||||
remoteExpire = "60",
|
||||
@@ -120,6 +124,7 @@ public class _DynLocalCacheInstance extends CachedInstance {
|
||||
@DynForCached(
|
||||
dynField = "_redkale_getName2AsyncCachedAction5",
|
||||
manager = "",
|
||||
name = "name",
|
||||
key = "name",
|
||||
nullable = false,
|
||||
timeUnit = TimeUnit.SECONDS,
|
||||
@@ -137,7 +142,8 @@ public class _DynLocalCacheInstance extends CachedInstance {
|
||||
@DynForCached(
|
||||
dynField = "_redkale_getInfoAsyncCachedAction6",
|
||||
manager = "",
|
||||
key = "info_#{id}_file#{files.one}",
|
||||
name = "info",
|
||||
key = "#{id}_#{files.one}",
|
||||
nullable = false,
|
||||
timeUnit = TimeUnit.SECONDS,
|
||||
remoteExpire = "60",
|
||||
@@ -156,6 +162,7 @@ public class _DynLocalCacheInstance extends CachedInstance {
|
||||
@DynForCached(
|
||||
dynField = "_redkale_getName2CachedAction7",
|
||||
manager = "",
|
||||
name = "name",
|
||||
key = "name",
|
||||
nullable = false,
|
||||
timeUnit = TimeUnit.SECONDS,
|
||||
|
||||
Reference in New Issue
Block a user