parent
d99271c9d5
commit
5af4415050
@ -1,133 +0,0 @@
|
|||||||
package com.xxl.job.admin.util;
|
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.concurrent.ConcurrentMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* local cache tool
|
|
||||||
*
|
|
||||||
* @author xuxueli 2018-01-22 21:37:34
|
|
||||||
*/
|
|
||||||
public class LocalCacheUtil {
|
|
||||||
|
|
||||||
private static ConcurrentMap<String, LocalCacheData> cacheRepository = new ConcurrentHashMap<String, LocalCacheData>(); // 类型建议用抽象父类,兼容性更好;
|
|
||||||
private static class LocalCacheData{
|
|
||||||
private String key;
|
|
||||||
private Object val;
|
|
||||||
private long timeoutTime;
|
|
||||||
|
|
||||||
public LocalCacheData() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public LocalCacheData(String key, Object val, long timeoutTime) {
|
|
||||||
this.key = key;
|
|
||||||
this.val = val;
|
|
||||||
this.timeoutTime = timeoutTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getKey() {
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKey(String key) {
|
|
||||||
this.key = key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object getVal() {
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVal(Object val) {
|
|
||||||
this.val = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getTimeoutTime() {
|
|
||||||
return timeoutTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTimeoutTime(long timeoutTime) {
|
|
||||||
this.timeoutTime = timeoutTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* set cache
|
|
||||||
*
|
|
||||||
* @param key
|
|
||||||
* @param val
|
|
||||||
* @param cacheTime
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static boolean set(String key, Object val, long cacheTime){
|
|
||||||
|
|
||||||
// clean timeout cache, before set new cache (avoid cache too much)
|
|
||||||
cleanTimeoutCache();
|
|
||||||
|
|
||||||
// set new cache
|
|
||||||
if (key==null || key.trim().length()==0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (val == null) {
|
|
||||||
remove(key);
|
|
||||||
}
|
|
||||||
if (cacheTime <= 0) {
|
|
||||||
remove(key);
|
|
||||||
}
|
|
||||||
long timeoutTime = System.currentTimeMillis() + cacheTime;
|
|
||||||
LocalCacheData localCacheData = new LocalCacheData(key, val, timeoutTime);
|
|
||||||
cacheRepository.put(localCacheData.getKey(), localCacheData);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* remove cache
|
|
||||||
*
|
|
||||||
* @param key
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static boolean remove(String key){
|
|
||||||
if (key==null || key.trim().length()==0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
cacheRepository.remove(key);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get cache
|
|
||||||
*
|
|
||||||
* @param key
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static Object get(String key){
|
|
||||||
if (key==null || key.trim().length()==0) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
LocalCacheData localCacheData = cacheRepository.get(key);
|
|
||||||
if (localCacheData!=null && System.currentTimeMillis()<localCacheData.getTimeoutTime()) {
|
|
||||||
return localCacheData.getVal();
|
|
||||||
} else {
|
|
||||||
remove(key);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* clean timeout cache
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static boolean cleanTimeoutCache(){
|
|
||||||
if (!cacheRepository.keySet().isEmpty()) {
|
|
||||||
for (String key: cacheRepository.keySet()) {
|
|
||||||
LocalCacheData localCacheData = cacheRepository.get(key);
|
|
||||||
if (localCacheData!=null && System.currentTimeMillis()>=localCacheData.getTimeoutTime()) {
|
|
||||||
cacheRepository.remove(key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,133 @@
|
|||||||
|
//package com.xxl.job.admin.util;
|
||||||
|
//
|
||||||
|
//import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
//import java.util.concurrent.ConcurrentMap;
|
||||||
|
//
|
||||||
|
///**
|
||||||
|
// * local cache tool
|
||||||
|
// *
|
||||||
|
// * @author xuxueli 2018-01-22 21:37:34
|
||||||
|
// */
|
||||||
|
//public class LocalCacheUtil {
|
||||||
|
//
|
||||||
|
// private static ConcurrentMap<String, LocalCacheData> cacheRepository = new ConcurrentHashMap<String, LocalCacheData>(); // 类型建议用抽象父类,兼容性更好;
|
||||||
|
// private static class LocalCacheData{
|
||||||
|
// private String key;
|
||||||
|
// private Object val;
|
||||||
|
// private long timeoutTime;
|
||||||
|
//
|
||||||
|
// public LocalCacheData() {
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public LocalCacheData(String key, Object val, long timeoutTime) {
|
||||||
|
// this.key = key;
|
||||||
|
// this.val = val;
|
||||||
|
// this.timeoutTime = timeoutTime;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public String getKey() {
|
||||||
|
// return key;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public void setKey(String key) {
|
||||||
|
// this.key = key;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public Object getVal() {
|
||||||
|
// return val;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public void setVal(Object val) {
|
||||||
|
// this.val = val;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public long getTimeoutTime() {
|
||||||
|
// return timeoutTime;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public void setTimeoutTime(long timeoutTime) {
|
||||||
|
// this.timeoutTime = timeoutTime;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * set cache
|
||||||
|
// *
|
||||||
|
// * @param key
|
||||||
|
// * @param val
|
||||||
|
// * @param cacheTime
|
||||||
|
// * @return
|
||||||
|
// */
|
||||||
|
// public static boolean set(String key, Object val, long cacheTime){
|
||||||
|
//
|
||||||
|
// // clean timeout cache, before set new cache (avoid cache too much)
|
||||||
|
// cleanTimeoutCache();
|
||||||
|
//
|
||||||
|
// // set new cache
|
||||||
|
// if (key==null || key.trim().length()==0) {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// if (val == null) {
|
||||||
|
// remove(key);
|
||||||
|
// }
|
||||||
|
// if (cacheTime <= 0) {
|
||||||
|
// remove(key);
|
||||||
|
// }
|
||||||
|
// long timeoutTime = System.currentTimeMillis() + cacheTime;
|
||||||
|
// LocalCacheData localCacheData = new LocalCacheData(key, val, timeoutTime);
|
||||||
|
// cacheRepository.put(localCacheData.getKey(), localCacheData);
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * remove cache
|
||||||
|
// *
|
||||||
|
// * @param key
|
||||||
|
// * @return
|
||||||
|
// */
|
||||||
|
// public static boolean remove(String key){
|
||||||
|
// if (key==null || key.trim().length()==0) {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// cacheRepository.remove(key);
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * get cache
|
||||||
|
// *
|
||||||
|
// * @param key
|
||||||
|
// * @return
|
||||||
|
// */
|
||||||
|
// public static Object get(String key){
|
||||||
|
// if (key==null || key.trim().length()==0) {
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
// LocalCacheData localCacheData = cacheRepository.get(key);
|
||||||
|
// if (localCacheData!=null && System.currentTimeMillis()<localCacheData.getTimeoutTime()) {
|
||||||
|
// return localCacheData.getVal();
|
||||||
|
// } else {
|
||||||
|
// remove(key);
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * clean timeout cache
|
||||||
|
// *
|
||||||
|
// * @return
|
||||||
|
// */
|
||||||
|
// public static boolean cleanTimeoutCache(){
|
||||||
|
// if (!cacheRepository.keySet().isEmpty()) {
|
||||||
|
// for (String key: cacheRepository.keySet()) {
|
||||||
|
// LocalCacheData localCacheData = cacheRepository.get(key);
|
||||||
|
// if (localCacheData!=null && System.currentTimeMillis()>=localCacheData.getTimeoutTime()) {
|
||||||
|
// cacheRepository.remove(key);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//}
|
Loading…
Reference in new issue