| 
					
				 | 
			
			
				@@ -47,24 +47,32 @@ public class XxlJobLogCallbackServerHandler extends AbstractHandler { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (!ResponseModel.SUCCESS.equals(log.getHandleStatus())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				XxlJobInfo xxlJobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(log.getJobGroup(), log.getJobName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (xxlJobInfo!=null && StringUtils.isNotBlank(xxlJobInfo.getChildJobKey())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					String[] jobKeyArr = xxlJobInfo.getChildJobKey().split("_"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if (jobKeyArr!=null && jobKeyArr.length==2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						XxlJobInfo childJobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(jobKeyArr[0], jobKeyArr[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						if (childJobInfo!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								boolean ret = DynamicSchedulerUtil.triggerJob(childJobInfo.getJobName(), childJobInfo.getJobGroup()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					childTriggerMsg = "<hr>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    String[] childJobKeys = xxlJobInfo.getChildJobKey().split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					for (int i = 0; i < childJobKeys.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						String[] jobKeyArr = childJobKeys[i].split("_"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if (jobKeyArr!=null && jobKeyArr.length==2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							XxlJobInfo childJobInfo = DynamicSchedulerUtil.xxlJobInfoDao.load(jobKeyArr[0], jobKeyArr[1]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							if (childJobInfo!=null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									boolean ret = DynamicSchedulerUtil.triggerJob(childJobInfo.getJobName(), childJobInfo.getJobGroup()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								// add msg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                childTriggerMsg += MessageFormat.format("<br> 触发子任务成功, 子任务Key: {0}, status: {1}, 子任务描述: {2}", xxlJobInfo.getChildJobKey(), ret, childJobInfo.getJobDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							} catch (SchedulerException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-								logger.error("", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									// add msg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									childTriggerMsg += MessageFormat.format("<br> {0}/{1} 触发子任务成功, 子任务Key: {2}, status: {3}, 子任务描述: {4}", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+											(i+1), childJobKeys.length, childJobKeys[i], ret, childJobInfo.getJobDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} catch (SchedulerException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									logger.error("", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								childTriggerMsg += MessageFormat.format("<br> {0}/{1} 触发子任务失败, 子任务xxlJobInfo不存在, 子任务Key: {2}", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										(i+1), childJobKeys.length, childJobKeys[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            childTriggerMsg = "<br> 触发子任务失败, 子任务xxlJobInfo不存在, 子任务Key:" + xxlJobInfo.getChildJobKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        childTriggerMsg = "<br> 触发子任务失败, 子任务Key格式错误, 子任务Key:" + xxlJobInfo.getChildJobKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							childTriggerMsg += MessageFormat.format("<br> {0}/{1} 触发子任务失败, 子任务Key格式错误, 子任务Key: {2}", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									(i+1), childJobKeys.length, childJobKeys[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |