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