|
@@ -1,149 +0,0 @@
|
|
-//package com.qmth.sop.business.util;
|
|
|
|
-//
|
|
|
|
-//import com.alibaba.fastjson.JSONArray;
|
|
|
|
-//import com.alibaba.fastjson.JSONObject;
|
|
|
|
-//import com.github.benmanes.caffeine.cache.Cache;
|
|
|
|
-//import com.github.benmanes.caffeine.cache.Caffeine;
|
|
|
|
-//import com.github.benmanes.caffeine.cache.Expiry;
|
|
|
|
-//import org.checkerframework.checker.index.qual.NonNegative;
|
|
|
|
-//import org.checkerframework.checker.nullness.qual.NonNull;
|
|
|
|
-//import org.slf4j.Logger;
|
|
|
|
-//import org.slf4j.LoggerFactory;
|
|
|
|
-//
|
|
|
|
-//import java.util.Collection;
|
|
|
|
-//import java.util.Map;
|
|
|
|
-//import java.util.concurrent.TimeUnit;
|
|
|
|
-//
|
|
|
|
-//import static java.util.Objects.isNull;
|
|
|
|
-//
|
|
|
|
-///**
|
|
|
|
-// * @Description: CAFFEINE缓存工具类
|
|
|
|
-// * @Param:
|
|
|
|
-// * @return:
|
|
|
|
-// * @Author: wangliang
|
|
|
|
-// * @Date: 2023/12/27
|
|
|
|
-// */
|
|
|
|
-//public class CacheUtil {
|
|
|
|
-//
|
|
|
|
-// private final static Logger log = LoggerFactory.getLogger(CacheUtil.class);
|
|
|
|
-//
|
|
|
|
-// /**
|
|
|
|
-// * 不设置过期时长
|
|
|
|
-// */
|
|
|
|
-// public static final long NOT_EXPIRE = Long.MAX_VALUE;
|
|
|
|
-//
|
|
|
|
-// public static final Cache<String, CacheObject<?>> CAFFEINE = Caffeine.newBuilder()
|
|
|
|
-// .expireAfter(new Expiry<String, CacheObject<?>>() {
|
|
|
|
-//
|
|
|
|
-// @Override
|
|
|
|
-// public long expireAfterCreate(@NonNull String key, @NonNull CacheObject<?> value, long currentTime) {
|
|
|
|
-// return value.expire;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// @Override
|
|
|
|
-// public long expireAfterUpdate(@NonNull String key, @NonNull CacheObject<?> value, long currentTime,
|
|
|
|
-// @NonNegative long currentDuration) {
|
|
|
|
-// return value.expire;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// @Override
|
|
|
|
-// public long expireAfterRead(@NonNull String key, @NonNull CacheObject<?> value, long currentTime,
|
|
|
|
-// @NonNegative long currentDuration) {
|
|
|
|
-// return value.expire;
|
|
|
|
-// }
|
|
|
|
-// }).initialCapacity(100).maximumSize(1024).build();
|
|
|
|
-//
|
|
|
|
-// private static class CacheObject<T> {
|
|
|
|
-//
|
|
|
|
-// T data;
|
|
|
|
-//
|
|
|
|
-// long expire;
|
|
|
|
-//
|
|
|
|
-// public CacheObject(T data, long second) {
|
|
|
|
-// this.data = data;
|
|
|
|
-// this.expire = TimeUnit.SECONDS.toNanos(second);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// public static <T> void set(String key, T value, long expire) {
|
|
|
|
-// CacheObject<T> cacheObject = new CacheObject<>(value, expire);
|
|
|
|
-// CAFFEINE.put(key, cacheObject);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// public static void set(String key, Object value) {
|
|
|
|
-// set(key, value, NOT_EXPIRE);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// @SuppressWarnings("unchecked")
|
|
|
|
-// public static <T> T get(String key) {
|
|
|
|
-// CacheObject<?> cacheObject = CAFFEINE.getIfPresent(key);
|
|
|
|
-// if (isNull(cacheObject)) {
|
|
|
|
-// return null;
|
|
|
|
-// }
|
|
|
|
-// return (T) cacheObject.data;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// public static void delete(String key) {
|
|
|
|
-// CAFFEINE.invalidate(key);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// public static void delete(Collection<String> keys) {
|
|
|
|
-// CAFFEINE.invalidateAll(keys);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// public static JSONArray getAll() {
|
|
|
|
-// Map map = CAFFEINE.asMap();
|
|
|
|
-// JSONArray jsonArray = new JSONArray();
|
|
|
|
-// for (Object key : map.keySet()) {
|
|
|
|
-// CacheObject cacheObject = (CacheObject) map.get(key);
|
|
|
|
-// JSONObject jsonObject = new JSONObject();
|
|
|
|
-// jsonObject.put(key.toString(), cacheObject.data + ";" + TimeUnit.SECONDS.toMinutes(cacheObject.expire));
|
|
|
|
-// jsonArray.add(jsonObject);
|
|
|
|
-// }
|
|
|
|
-// return jsonArray;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// // public static void main(String[] args) throws InterruptedException {
|
|
|
|
-// // CacheUtil.set("A", 1, 2 * 60);
|
|
|
|
-// // CacheUtil.set("B", 2, 5 * 60);
|
|
|
|
-// // CacheUtil.set("C", 3, 8 * 60);
|
|
|
|
-// //
|
|
|
|
-// // Map map = CAFFEINE.asMap();
|
|
|
|
-// // for (Object key : map.keySet()) {
|
|
|
|
-// // CacheObject cacheObject = (CacheObject) map.get(key);
|
|
|
|
-// // System.out.println(key + "," + cacheObject.data + "," + TimeUnit.SECONDS.toMinutes(cacheObject.expire));
|
|
|
|
-// // }
|
|
|
|
-// // Object a = CacheUtil.get("A");
|
|
|
|
-// // Object b = CacheUtil.get("B");
|
|
|
|
-// // Object c = CacheUtil.get("C");
|
|
|
|
-// // System.out.println(a);
|
|
|
|
-// // System.out.println(b);
|
|
|
|
-// // System.out.println(c);
|
|
|
|
-// // System.out.println("-----------------");
|
|
|
|
-// // Thread.sleep(2000);
|
|
|
|
-// //
|
|
|
|
-// // a = CacheUtil.get("A");
|
|
|
|
-// // b = CacheUtil.get("B");
|
|
|
|
-// // c = CacheUtil.get("C");
|
|
|
|
-// // System.out.println(a);
|
|
|
|
-// // System.out.println(b);
|
|
|
|
-// // System.out.println(c);
|
|
|
|
-// // System.out.println("-----------------");
|
|
|
|
-// // Thread.sleep(5000);
|
|
|
|
-// // a = CacheUtil.get("A");
|
|
|
|
-// // b = CacheUtil.get("B");
|
|
|
|
-// // c = CacheUtil.get("C");
|
|
|
|
-// // System.out.println(a);
|
|
|
|
-// // System.out.println(b);
|
|
|
|
-// // System.out.println(c);
|
|
|
|
-// // System.out.println("-----------------");
|
|
|
|
-// // Thread.sleep(1000 * 120);
|
|
|
|
-// // a = CacheUtil.get("A");
|
|
|
|
-// // b = CacheUtil.get("B");
|
|
|
|
-// // c = CacheUtil.get("C");
|
|
|
|
-// // System.out.println(a);
|
|
|
|
-// // System.out.println(b);
|
|
|
|
-// // System.out.println(c);
|
|
|
|
-// // System.out.println("-----------------");
|
|
|
|
-// // }
|
|
|
|
-//}
|
|
|