|
@@ -83,7 +83,8 @@ public class ModelManager {
|
|
* @param path Model在OSS上的全路径
|
|
* @param path Model在OSS上的全路径
|
|
* @param modelClass Model的子类型
|
|
* @param modelClass Model的子类型
|
|
*/
|
|
*/
|
|
- public void registerModel(String modelName, String path, Class<? extends Model> modelClass) throws ModelRegisterException, IOException {
|
|
|
|
|
|
+ public void registerModel(String modelName, String path, Class<? extends Model> modelClass,
|
|
|
|
+ Map<String, Object> params) throws ModelRegisterException, IOException {
|
|
if (modelPathMap.containsKey(modelName)) {
|
|
if (modelPathMap.containsKey(modelName)) {
|
|
// fail fast
|
|
// fail fast
|
|
// throw new RuntimeException(modelName + " already exists");
|
|
// throw new RuntimeException(modelName + " already exists");
|
|
@@ -96,7 +97,7 @@ public class ModelManager {
|
|
ModelLoadTask loadTask = loadTasks.get(path);
|
|
ModelLoadTask loadTask = loadTasks.get(path);
|
|
loadTask.refCount++;
|
|
loadTask.refCount++;
|
|
} else {
|
|
} else {
|
|
- ModelLoadTask task = new ModelLoadTask(path, modelClass);
|
|
|
|
|
|
+ ModelLoadTask task = new ModelLoadTask(path, modelClass, params);
|
|
task.refCount++;
|
|
task.refCount++;
|
|
loadTasks.put(path, task);
|
|
loadTasks.put(path, task);
|
|
loadModelWithRetry(task, false, true);
|
|
loadModelWithRetry(task, false, true);
|
|
@@ -205,6 +206,7 @@ public class ModelManager {
|
|
loadTask.lastModifyTime, timeStamp);
|
|
loadTask.lastModifyTime, timeStamp);
|
|
|
|
|
|
Model model = loadTask.modelClass.newInstance();
|
|
Model model = loadTask.modelClass.newInstance();
|
|
|
|
+ model.setParams(loadTask.params);
|
|
if (model.loadFromStream(ossObj.getObjectContent())) {
|
|
if (model.loadFromStream(ossObj.getObjectContent())) {
|
|
loadTask.model = model;
|
|
loadTask.model = model;
|
|
loadTask.lastModifyTime = timeStamp;
|
|
loadTask.lastModifyTime = timeStamp;
|
|
@@ -245,12 +247,14 @@ public class ModelManager {
|
|
private boolean isLoading;
|
|
private boolean isLoading;
|
|
private final Class<? extends Model> modelClass;
|
|
private final Class<? extends Model> modelClass;
|
|
private Model model;
|
|
private Model model;
|
|
|
|
+ private Map<String, Object> params;
|
|
|
|
|
|
- ModelLoadTask(String path, Class<? extends Model> modelClass) {
|
|
|
|
|
|
+ ModelLoadTask(String path, Class<? extends Model> modelClass, Map<String, Object> params) {
|
|
this.refCount = 0;
|
|
this.refCount = 0;
|
|
this.path = path;
|
|
this.path = path;
|
|
this.lastModifyTime = 0;
|
|
this.lastModifyTime = 0;
|
|
this.modelClass = modelClass;
|
|
this.modelClass = modelClass;
|
|
|
|
+ this.params = params;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|