| 
														
															@@ -99,7 +99,7 @@ public class ModelManager { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             ModelLoadTask task = new ModelLoadTask(path, modelClass); 
														 | 
														
														 | 
														
															             ModelLoadTask task = new ModelLoadTask(path, modelClass); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             task.refCount++; 
														 | 
														
														 | 
														
															             task.refCount++; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             loadTasks.put(path, task); 
														 | 
														
														 | 
														
															             loadTasks.put(path, task); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            loadModel(task, false, true); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            loadModelWithRetry(task, false, true); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -162,7 +162,23 @@ public class ModelManager { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for (String modelPath : loadTasks.keySet()) { 
														 | 
														
														 | 
														
															         for (String modelPath : loadTasks.keySet()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             log.debug("load task model path [{}]", modelPath); 
														 | 
														
														 | 
														
															             log.debug("load task model path [{}]", modelPath); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             ModelLoadTask task = loadTasks.get(modelPath); 
														 | 
														
														 | 
														
															             ModelLoadTask task = loadTasks.get(modelPath); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            loadModel(task, isForceLoads, false); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            loadModelWithRetry(task, isForceLoads, false); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private void loadModelWithRetry(final ModelLoadTask loadTask, final boolean isForceLoads, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                    final boolean isRegister) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            int retry = 2; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            int delay = 3000; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            while (retry-- > 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (loadModel(loadTask, isForceLoads, isRegister)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    break; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Thread.sleep(delay); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        } catch (InterruptedException e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            log.error("loadModelWithRetry fail", e); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -174,12 +190,13 @@ public class ModelManager { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * 
														 | 
														
														 | 
														
															      * 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @param loadTask 
														 | 
														
														 | 
														
															      * @param loadTask 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      */ 
														 | 
														
														 | 
														
															      */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private void loadModel(final ModelLoadTask loadTask, final boolean isForceLoads, final boolean isRegister) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private boolean loadModel(final ModelLoadTask loadTask, final boolean isForceLoads, final boolean isRegister) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (loadTask.isLoading) { 
														 | 
														
														 | 
														
															         if (loadTask.isLoading) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            return; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         loadTask.isLoading = true; 
														 | 
														
														 | 
														
															         loadTask.isLoading = true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         OSSObject ossObj = null; 
														 | 
														
														 | 
														
															         OSSObject ossObj = null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         try { 
														 | 
														
														 | 
														
															         try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             ossObj = client.getObject(bucketName, loadTask.path); 
														 | 
														
														 | 
														
															             ossObj = client.getObject(bucketName, loadTask.path); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             long timeStamp = ossObj.getObjectMetadata().getLastModified().getTime(); 
														 | 
														
														 | 
														
															             long timeStamp = ossObj.getObjectMetadata().getLastModified().getTime(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -196,6 +213,7 @@ public class ModelManager { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             ossObj.close(); 
														 | 
														
														 | 
														
															             ossObj.close(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } catch (Exception e) { 
														 | 
														
														 | 
														
															         } catch (Exception e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             log.error("update model fail", e); 
														 | 
														
														 | 
														
															             log.error("update model fail", e); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            return false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } finally { 
														 | 
														
														 | 
														
															         } finally { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             loadTask.isLoading = false; 
														 | 
														
														 | 
														
															             loadTask.isLoading = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (ossObj != null) { 
														 | 
														
														 | 
														
															             if (ossObj != null) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -206,6 +224,7 @@ public class ModelManager { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public class ModelRegisterException extends Exception { 
														 | 
														
														 | 
														
															     public class ModelRegisterException extends Exception { 
														 |