|
@@ -9,10 +9,8 @@ import com.aliyun.oss.model.OSSObject;
|
|
import com.ctrip.framework.apollo.Config;
|
|
import com.ctrip.framework.apollo.Config;
|
|
import com.ctrip.framework.apollo.ConfigService;
|
|
import com.ctrip.framework.apollo.ConfigService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
-import org.springframework.ui.Model;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
-import java.io.InputStreamReader;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.concurrent.Executors;
|
|
import java.util.concurrent.Executors;
|
|
@@ -79,12 +77,13 @@ public class ModelManager {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 添加一个加载任务到管理器
|
|
* 添加一个加载任务到管理器
|
|
- *
|
|
|
|
- * @param modelName Model的名字, 注册到ModelManager的不同model需要不同的名字
|
|
|
|
- * @param path Model在OSS上的全路径
|
|
|
|
- * @param modelClass Model的子类型
|
|
|
|
*/
|
|
*/
|
|
- public void registerModel(String modelName, String path, Class<? extends Model> modelClass) throws ModelRegisterException, IOException {
|
|
|
|
|
|
+ public void registerModel(ModelEnum modelEnum) {
|
|
|
|
+
|
|
|
|
+ String modelName = modelEnum.getModelName();
|
|
|
|
+ String path = modelEnum.getModelOssPath();
|
|
|
|
+ Class<? extends Model> modelClass = modelEnum.getModelClass();
|
|
|
|
+
|
|
if (modelPathMap.containsKey(modelName)) {
|
|
if (modelPathMap.containsKey(modelName)) {
|
|
// fail fast
|
|
// fail fast
|
|
// throw new RuntimeException(modelName + " already exists");
|
|
// throw new RuntimeException(modelName + " already exists");
|
|
@@ -107,10 +106,9 @@ public class ModelManager {
|
|
|
|
|
|
/**
|
|
/**
|
|
* 删除一个加载任务
|
|
* 删除一个加载任务
|
|
- *
|
|
|
|
- * @param modelName Model的名字, 需要和registerModel的名字一致
|
|
|
|
*/
|
|
*/
|
|
- private void unRegisterModel(String modelName) {
|
|
|
|
|
|
+ private void unRegisterModel(ModelEnum modelEnum) {
|
|
|
|
+ String modelName = modelEnum.getModelName();
|
|
if (modelPathMap.containsKey(modelName)) {
|
|
if (modelPathMap.containsKey(modelName)) {
|
|
String path = modelPathMap.get(modelName);
|
|
String path = modelPathMap.get(modelName);
|
|
if (loadTasks.containsKey(path)) {
|
|
if (loadTasks.containsKey(path)) {
|
|
@@ -124,11 +122,8 @@ public class ModelManager {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * @param modelName
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- public Model getModel(String modelName) {
|
|
|
|
|
|
+ public Model getModel(ModelEnum modelEnum) {
|
|
|
|
+ String modelName = modelEnum.getModelName();
|
|
if (modelPathMap.containsKey(modelName) && loadTasks.containsKey(modelPathMap.get(modelName))) {
|
|
if (modelPathMap.containsKey(modelName) && loadTasks.containsKey(modelPathMap.get(modelName))) {
|
|
return loadTasks.get(modelPathMap.get(modelName)).model;
|
|
return loadTasks.get(modelPathMap.get(modelName)).model;
|
|
} else {
|
|
} else {
|
|
@@ -190,7 +185,7 @@ public class ModelManager {
|
|
loadTask.lastModifyTime, timeStamp);
|
|
loadTask.lastModifyTime, timeStamp);
|
|
|
|
|
|
Model model = loadTask.modelClass.newInstance();
|
|
Model model = loadTask.modelClass.newInstance();
|
|
- if (model.loadFromStream(new InputStreamReader(ossObj.getObjectContent()))) {
|
|
|
|
|
|
+ if (model.loadFromStream(ossObj.getObjectContent())) {
|
|
loadTask.model = model;
|
|
loadTask.model = model;
|
|
loadTask.lastModifyTime = timeStamp;
|
|
loadTask.lastModifyTime = timeStamp;
|
|
}
|
|
}
|