| 
					
				 | 
			
			
				@@ -52,9 +52,10 @@ public class JobScheduleHelper { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Connection conn = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 while (!scheduleThreadToStop) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // 扫描任务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // Scan Job 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     long start = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     PreparedStatement preparedStatement = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    boolean preReadSuc = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (conn==null || conn.isClosed()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             conn = XxlJobAdminConfig.getAdminConfig().getDataSource().getConnection(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -154,6 +155,8 @@ public class JobScheduleHelper { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleUpdate(jobInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            preReadSuc = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         // tx stop 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -187,14 +190,17 @@ public class JobScheduleHelper { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     long cost = System.currentTimeMillis()-start; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    // next second, align second 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (cost < 1000) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            TimeUnit.MILLISECONDS.sleep(1000 - System.currentTimeMillis()%1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } catch (InterruptedException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (!scheduleThreadToStop) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            logger.error(e.getMessage(), e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // Wait seconds, align second 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (cost < 1000) {  // scan-overtime, not wait 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // pre-read success, exist job in 5s, wait 1s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            // pre-read fail, no exist job in 5s, wait 1s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            TimeUnit.MILLISECONDS.sleep((preReadSuc?1000:4000) - System.currentTimeMillis()%1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } catch (InterruptedException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (!scheduleThreadToStop) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                logger.error(e.getMessage(), e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |