Quellcode durchsuchen

数据中心应用缓存优化2

o2sword vor 5 Jahren
Ursprung
Commit
536a50a163

+ 16 - 18
o2server/x_query_service_processing/src/main/java/com/x/query/service/processing/factory/QueryFactory.java

@@ -7,35 +7,34 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.StringUtils;
 
-import com.x.base.core.project.cache.ApplicationCache;
 import com.x.base.core.project.tools.StringTools;
 import com.x.query.core.entity.Query;
 import com.x.query.service.processing.AbstractFactory;
 import com.x.query.service.processing.Business;
-
-import net.sf.ehcache.Ehcache;
-import net.sf.ehcache.Element;
+import com.x.base.core.project.cache.Cache.CacheCategory;
+import com.x.base.core.project.cache.Cache.CacheKey;
+import com.x.base.core.project.cache.CacheManager;
+import java.util.Optional;
 
 public class QueryFactory extends AbstractFactory {
 
-	private Ehcache cache;
+	private CacheCategory cache;
 
 	public QueryFactory(Business business) throws Exception {
 		super(business);
-		this.cache = ApplicationCache.instance().getCache(Query.class);
+		this.cache = new CacheCategory(Query.class);
 	}
 
 	public List<Query> pick(List<String> flags) throws Exception {
 		List<Query> list = new ArrayList<>();
 		for (String str : flags) {
-			Element element = cache.get(str);
-			if (null != element) {
-				if (null != element.getObjectValue()) {
-					list.add((Query) element.getObjectValue());
-				}
+			CacheKey cacheKey = new CacheKey(str);
+			Optional<?> optional = CacheManager.get(cache, cacheKey);
+			if (optional.isPresent()) {
+				list.add((Query) optional.get());
 			} else {
 				Query o = this.pickObject(str);
-				cache.put(new Element(str, o));
+				CacheManager.put(cache, cacheKey, o);
 				if (null != o) {
 					list.add(o);
 				}
@@ -49,14 +48,13 @@ public class QueryFactory extends AbstractFactory {
 			return null;
 		}
 		Query o = null;
-		Element element = cache.get(flag);
-		if (null != element) {
-			if (null != element.getObjectValue()) {
-				o = (Query) element.getObjectValue();
-			}
+		CacheKey cacheKey = new CacheKey(flag);
+		Optional<?> optional = CacheManager.get(cache, cacheKey);
+		if (optional.isPresent()) {
+			o = (Query) optional.get();
 		} else {
 			o = this.pickObject(flag);
-			cache.put(new Element(flag, o));
+			CacheManager.put(cache, cacheKey, o);
 		}
 		return o;
 	}

+ 8 - 8
o2server/x_query_service_processing/src/main/java/com/x/query/service/processing/jaxrs/neural/ActionListCalculateWithWork.java

@@ -20,7 +20,6 @@ import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.entity.dataitem.DataItemConverter;
 import com.x.base.core.entity.dataitem.ItemCategory;
-import com.x.base.core.project.cache.ApplicationCache;
 import com.x.base.core.project.config.Config;
 import com.x.base.core.project.config.StorageMapping;
 import com.x.base.core.project.exception.ExceptionEntityNotExist;
@@ -43,8 +42,9 @@ import com.x.query.service.processing.Business;
 import com.x.query.service.processing.ThisApplication;
 import com.x.query.service.processing.helper.ExtractTextHelper;
 import com.x.query.service.processing.helper.LanguageProcessingHelper;
-
-import net.sf.ehcache.Element;
+import com.x.base.core.project.cache.Cache.CacheKey;
+import com.x.base.core.project.cache.CacheManager;
+import java.util.Optional;
 
 class ActionListCalculateWithWork extends BaseAction {
 
@@ -63,10 +63,10 @@ class ActionListCalculateWithWork extends BaseAction {
 				throw new ExceptionModelNotReady(model.getName());
 			}
 			NeuralNetwork<MomentumBackpropagation> neuralNetwork = null;
-			String cacheKey = ApplicationCache.concreteCacheKey(this.getClass(), model.getId());
-			Element element = cache.get(cacheKey);
-			if (null != element && (null != element.getObjectValue())) {
-				neuralNetwork = ((NeuralNetwork<MomentumBackpropagation>) element.getObjectValue());
+			CacheKey cacheKey = new CacheKey(this.getClass(), model.getId());
+			Optional<?> optional = CacheManager.get(cache, cacheKey);
+			if (optional.isPresent()) {
+				neuralNetwork = ((NeuralNetwork<MomentumBackpropagation>) optional.get());
 			} else {
 				if (StringUtils.isEmpty(model.getNnet())) {
 					throw new ExceptionModelNotReady(model.getName());
@@ -75,7 +75,7 @@ class ActionListCalculateWithWork extends BaseAction {
 				NeuralNetworkCODEC.array2network(
 						DoubleTools.byteToDoubleArray(ByteTools.decompressBase64String(model.getNnet())),
 						neuralNetwork);
-				cache.put(new Element(cacheKey, neuralNetwork));
+				CacheManager.put(cache, cacheKey, neuralNetwork);
 			}
 			Wo wo = new Wo();
 			Work work = emc.flag(workId, Work.class);

+ 2 - 4
o2server/x_query_service_processing/src/main/java/com/x/query/service/processing/jaxrs/neural/BaseAction.java

@@ -1,16 +1,14 @@
 package com.x.query.service.processing.jaxrs.neural;
 
-import com.x.base.core.project.cache.ApplicationCache;
 import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
 import com.x.query.core.entity.neural.Model;
-
-import net.sf.ehcache.Ehcache;
+import com.x.base.core.project.cache.Cache.CacheCategory;
 
 abstract class BaseAction extends StandardJaxrsAction {
 
-	protected Ehcache cache = ApplicationCache.instance().getCache(Model.class);
+	protected CacheCategory cache = new CacheCategory(Model.class);
 
 	private static Logger logger = LoggerFactory.getLogger(BaseAction.class);