| 
					
				 | 
			
			
				@@ -117,73 +117,73 @@ public class XxlJobTrigger { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 logger.debug(">>>>>>>>>>> xxl-job trigger end, jobId:{}", jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 1、save log-id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        XxlJobLog jobLog = new XxlJobLog(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setJobGroup(jobInfo.getJobGroup()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setJobId(jobInfo.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        XxlJobDynamicScheduler.xxlJobLogDao.save(jobLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        logger.debug(">>>>>>>>>>> xxl-job trigger start, jobId:{}", jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 2、prepare trigger-info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //jobLog.setExecutorAddress(executorAddress); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setGlueType(jobInfo.getGlueType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setExecutorHandler(jobInfo.getExecutorHandler()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setExecutorParam(jobInfo.getExecutorParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setTriggerTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ReturnT<String> triggerResult = new ReturnT<String>(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        StringBuffer triggerMsgSb = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        triggerMsgSb.append("调度机器:").append(IpUtil.getIp()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        triggerMsgSb.append("<br>执行器-注册方式:").append( (group.getAddressType() == 0)?"自动注册":"手动录入" ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        triggerMsgSb.append("<br>执行器-地址列表:").append(group.getRegistryList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        triggerMsgSb.append("<br>路由策略:").append(executorRouteStrategyEnum.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        triggerMsgSb.append("<br>阻塞处理策略:").append(blockStrategy.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        triggerMsgSb.append("<br>失败处理策略:").append(failStrategy.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 3、trigger-valid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (triggerResult.getCode()==ReturnT.SUCCESS_CODE && CollectionUtils.isEmpty(addressList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerResult.setCode(ReturnT.FAIL_CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerMsgSb.append("<br>----------------------<br>").append("调度失败:").append("执行器地址为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 1、save log-id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            XxlJobLog jobLog = new XxlJobLog(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setJobGroup(jobInfo.getJobGroup()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setJobId(jobInfo.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            XxlJobDynamicScheduler.xxlJobLogDao.save(jobLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.debug(">>>>>>>>>>> xxl-job trigger start, jobId:{}", jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 2、prepare trigger-info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //jobLog.setExecutorAddress(executorAddress); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setGlueType(jobInfo.getGlueType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setExecutorHandler(jobInfo.getExecutorHandler()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setExecutorParam(jobInfo.getExecutorParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setTriggerTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ReturnT<String> triggerResult = new ReturnT<String>(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StringBuffer triggerMsgSb = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            triggerMsgSb.append("调度机器:").append(IpUtil.getIp()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            triggerMsgSb.append("<br>执行器-注册方式:").append( (group.getAddressType() == 0)?"自动注册":"手动录入" ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            triggerMsgSb.append("<br>执行器-地址列表:").append(group.getRegistryList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            triggerMsgSb.append("<br>路由策略:").append(executorRouteStrategyEnum.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            triggerMsgSb.append("<br>阻塞处理策略:").append(blockStrategy.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            triggerMsgSb.append("<br>失败处理策略:").append(failStrategy.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 3、trigger-valid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (triggerResult.getCode()==ReturnT.SUCCESS_CODE && CollectionUtils.isEmpty(addressList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerResult.setCode(ReturnT.FAIL_CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerMsgSb.append("<br>----------------------<br>").append("调度失败:").append("执行器地址为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (triggerResult.getCode() == ReturnT.SUCCESS_CODE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 4.1、trigger-param 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TriggerParam triggerParam = new TriggerParam(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setJobId(jobInfo.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setExecutorHandler(jobInfo.getExecutorHandler()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setExecutorParams(jobInfo.getExecutorParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setLogId(jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setLogDateTim(jobLog.getTriggerTime().getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setGlueType(jobInfo.getGlueType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setGlueSource(jobInfo.getGlueSource()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setGlueUpdatetime(jobInfo.getGlueUpdatetime().getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setBroadcastIndex(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerParam.setBroadcastTotal(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 4.2、trigger-run (route run / trigger remote executor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>触发调度<<<<<<<<<<< </span><br>").append(triggerResult.getMsg()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 4.3、trigger (fail retry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_RETRY) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (triggerResult.getCode() == ReturnT.SUCCESS_CODE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 4.1、trigger-param 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TriggerParam triggerParam = new TriggerParam(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setJobId(jobInfo.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setExecutorHandler(jobInfo.getExecutorHandler()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setExecutorParams(jobInfo.getExecutorParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setLogId(jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setLogDateTim(jobLog.getTriggerTime().getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setGlueType(jobInfo.getGlueType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setGlueSource(jobInfo.getGlueSource()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setGlueUpdatetime(jobInfo.getGlueUpdatetime().getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setBroadcastIndex(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerParam.setBroadcastTotal(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 4.2、trigger-run (route run / trigger remote executor) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                triggerMsgSb.append("<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>调度失败重试<<<<<<<<<<< </span><br>").append(triggerResult.getMsg()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>触发调度<<<<<<<<<<< </span><br>").append(triggerResult.getMsg()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 4.3、trigger (fail retry) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (triggerResult.getCode()!=ReturnT.SUCCESS_CODE && failStrategy == ExecutorFailStrategyEnum.FAIL_RETRY) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    triggerResult = executorRouteStrategyEnum.getRouter().routeRun(triggerParam, addressList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    triggerMsgSb.append("<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>调度失败重试<<<<<<<<<<< </span><br>").append(triggerResult.getMsg()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 5、save trigger-info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setExecutorAddress(triggerResult.getContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setTriggerCode(triggerResult.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        jobLog.setTriggerMsg(triggerMsgSb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        XxlJobDynamicScheduler.xxlJobLogDao.updateTriggerInfo(jobLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 5、save trigger-info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setExecutorAddress(triggerResult.getContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setTriggerCode(triggerResult.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jobLog.setTriggerMsg(triggerMsgSb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            XxlJobDynamicScheduler.xxlJobLogDao.updateTriggerInfo(jobLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 6、monitor triger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            JobFailMonitorHelper.monitor(jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.debug(">>>>>>>>>>> xxl-job trigger end, jobId:{}", jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 6、monitor triger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        JobFailMonitorHelper.monitor(jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        logger.debug(">>>>>>>>>>> xxl-job trigger end, jobId:{}", jobLog.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 |