Loading escheduler-api/src/main/java/cn/escheduler/api/service/ProcessDefinitionService.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -125,6 +125,7 @@ public class ProcessDefinitionService extends BaseDAGService { processDefine.setDesc(desc); processDefine.setDesc(desc); processDefine.setLocations(locations); processDefine.setLocations(locations); processDefine.setConnects(connects); processDefine.setConnects(connects); processDefine.setTimeout(processData.getTimeout()); //custom global params //custom global params List<Property> globalParamsList = processData.getGlobalParams(); List<Property> globalParamsList = processData.getGlobalParams(); Loading Loading @@ -288,6 +289,7 @@ public class ProcessDefinitionService extends BaseDAGService { processDefine.setDesc(desc); processDefine.setDesc(desc); processDefine.setLocations(locations); processDefine.setLocations(locations); processDefine.setConnects(connects); processDefine.setConnects(connects); processDefine.setTimeout(processData.getTimeout()); //custom global params //custom global params List<Property> globalParamsList = processData.getGlobalParams(); List<Property> globalParamsList = processData.getGlobalParams(); Loading escheduler-api/src/main/java/cn/escheduler/api/service/ProcessInstanceService.java +15 −4 Original line number Original line Diff line number Diff line Loading @@ -346,7 +346,8 @@ public class ProcessInstanceService extends BaseDAGService { //check process instance status //check process instance status if (!processInstance.getState().typeIsFinished()) { if (!processInstance.getState().typeIsFinished()) { putMsg(result, Status.PROCESS_INSTANCE_STATE_OPERATION_ERROR, "update"); putMsg(result, Status.PROCESS_INSTANCE_STATE_OPERATION_ERROR, processInstance.getName(), processInstance.getState().toString(), "update"); return result; return result; } } Date schedule = null; Date schedule = null; Loading @@ -355,8 +356,12 @@ public class ProcessInstanceService extends BaseDAGService { } else { } else { schedule = processInstance.getScheduleTime(); schedule = processInstance.getScheduleTime(); } } processInstance.setScheduleTime(schedule); processInstance.setLocations(locations); processInstance.setConnects(connects); String globalParams = null; String globalParams = null; String originDefParams = null; String originDefParams = null; int timeout = processInstance.getTimeout(); if (StringUtils.isNotEmpty(processInstanceJson)) { if (StringUtils.isNotEmpty(processInstanceJson)) { ProcessData processData = JSONUtils.parseObject(processInstanceJson, ProcessData.class); ProcessData processData = JSONUtils.parseObject(processInstanceJson, ProcessData.class); //check workflow json is valid //check workflow json is valid Loading @@ -370,9 +375,14 @@ public class ProcessInstanceService extends BaseDAGService { Map<String, String> globalParamMap = globalParamList.stream().collect(Collectors.toMap(Property::getProp, Property::getValue)); Map<String, String> globalParamMap = globalParamList.stream().collect(Collectors.toMap(Property::getProp, Property::getValue)); globalParams = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList, globalParams = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList, processInstance.getCmdTypeIfComplement(), schedule); processInstance.getCmdTypeIfComplement(), schedule); } timeout = processData.getTimeout(); int update = processDao.updateProcessInstance(processInstanceId, processInstanceJson, processInstance.setTimeout(timeout); globalParams, schedule, flag, locations, connects); processInstance.setProcessInstanceJson(processInstanceJson); processInstance.setGlobalParams(globalParams); } // int update = processDao.updateProcessInstance(processInstanceId, processInstanceJson, // globalParams, schedule, flag, locations, connects); int update = processDao.updateProcessInstance(processInstance); int updateDefine = 1; int updateDefine = 1; if (syncDefine && StringUtils.isNotEmpty(processInstanceJson)) { if (syncDefine && StringUtils.isNotEmpty(processInstanceJson)) { ProcessDefinition processDefinition = processDao.findProcessDefineById(processInstance.getProcessDefinitionId()); ProcessDefinition processDefinition = processDao.findProcessDefineById(processInstance.getProcessDefinitionId()); Loading @@ -380,6 +390,7 @@ public class ProcessInstanceService extends BaseDAGService { processDefinition.setGlobalParams(originDefParams); processDefinition.setGlobalParams(originDefParams); processDefinition.setLocations(locations); processDefinition.setLocations(locations); processDefinition.setConnects(connects); processDefinition.setConnects(connects); processDefinition.setTimeout(timeout); updateDefine = processDefineMapper.update(processDefinition); updateDefine = processDefineMapper.update(processDefinition); } } if (update > 0 && updateDefine > 0) { if (update > 0 && updateDefine > 0) { Loading escheduler-common/src/main/java/cn/escheduler/common/Constants.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -331,6 +331,11 @@ public final class Constants { */ */ public static final int MAX_TASK_TIMEOUT = 24 * 3600; public static final int MAX_TASK_TIMEOUT = 24 * 3600; /** * max task timeout */ public static final int MAX_PROCESS_TIMEOUT = Integer.MAX_VALUE; /** /** * heartbeat threads number * heartbeat threads number Loading escheduler-dao/src/main/java/cn/escheduler/dao/AlertDao.java +33 −2 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,8 @@ import cn.escheduler.dao.datasource.ConnectionFactory; import cn.escheduler.dao.mapper.AlertMapper; import cn.escheduler.dao.mapper.AlertMapper; import cn.escheduler.dao.mapper.UserAlertGroupMapper; import cn.escheduler.dao.mapper.UserAlertGroupMapper; import cn.escheduler.dao.model.Alert; import cn.escheduler.dao.model.Alert; import cn.escheduler.dao.model.ProcessDefinition; import cn.escheduler.dao.model.ProcessInstance; import cn.escheduler.dao.model.User; import cn.escheduler.dao.model.User; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.Logger; Loading Loading @@ -83,8 +85,9 @@ public class AlertDao extends AbstractBaseDao { */ */ public void sendServerStopedAlert(int alertgroupId,String host,String serverType){ public void sendServerStopedAlert(int alertgroupId,String host,String serverType){ Alert alert = new Alert(); Alert alert = new Alert(); String content = String.format("[{'type':'%s','host':'%s','event':'服务挂掉','警告级别':'严重'}]",serverType,host); String content = String.format("[{'type':'%s','host':'%s','event':'server down','warning level':'serious'}]", alert.setTitle("容错告警"); serverType, host); alert.setTitle("Fault tolerance warning"); alert.setShowType(ShowType.TABLE); alert.setShowType(ShowType.TABLE); alert.setContent(content); alert.setContent(content); alert.setAlertType(AlertType.EMAIL); alert.setAlertType(AlertType.EMAIL); Loading @@ -94,6 +97,34 @@ public class AlertDao extends AbstractBaseDao { alertMapper.insert(alert); alertMapper.insert(alert); } } /** * process time out alert * @param processInstance * @param processDefinition */ public void sendProcessTimeoutAlert(ProcessInstance processInstance, ProcessDefinition processDefinition){ int alertgroupId = processInstance.getWarningGroupId(); String receivers = processDefinition.getReceivers(); String receiversCc = processDefinition.getReceiversCc(); Alert alert = new Alert(); String content = String.format("[{'id':'%d','name':'%s','event':'timeout','warnLevel':'middle'}]", processInstance.getId(), processInstance.getName()); alert.setTitle("Process Timeout Warn"); alert.setShowType(ShowType.TABLE); alert.setContent(content); alert.setAlertType(AlertType.EMAIL); alert.setAlertGroupId(alertgroupId); if (StringUtils.isNotEmpty(receivers)) { alert.setReceivers(receivers); } if (StringUtils.isNotEmpty(receiversCc)) { alert.setReceiversCc(receiversCc); } alert.setCreateTime(new Date()); alert.setUpdateTime(new Date()); alertMapper.insert(alert); } /** /** * task timeout warn * task timeout warn */ */ Loading escheduler-dao/src/main/java/cn/escheduler/dao/ProcessDao.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -482,6 +482,7 @@ public class ProcessDao extends AbstractBaseDao { // set process instance priority // set process instance priority processInstance.setProcessInstancePriority(command.getProcessInstancePriority()); processInstance.setProcessInstancePriority(command.getProcessInstancePriority()); processInstance.setWorkerGroupId(command.getWorkerGroupId()); processInstance.setWorkerGroupId(command.getWorkerGroupId()); processInstance.setTimeout(processDefinition.getTimeout()); return processInstance; return processInstance; } } Loading Loading
escheduler-api/src/main/java/cn/escheduler/api/service/ProcessDefinitionService.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -125,6 +125,7 @@ public class ProcessDefinitionService extends BaseDAGService { processDefine.setDesc(desc); processDefine.setDesc(desc); processDefine.setLocations(locations); processDefine.setLocations(locations); processDefine.setConnects(connects); processDefine.setConnects(connects); processDefine.setTimeout(processData.getTimeout()); //custom global params //custom global params List<Property> globalParamsList = processData.getGlobalParams(); List<Property> globalParamsList = processData.getGlobalParams(); Loading Loading @@ -288,6 +289,7 @@ public class ProcessDefinitionService extends BaseDAGService { processDefine.setDesc(desc); processDefine.setDesc(desc); processDefine.setLocations(locations); processDefine.setLocations(locations); processDefine.setConnects(connects); processDefine.setConnects(connects); processDefine.setTimeout(processData.getTimeout()); //custom global params //custom global params List<Property> globalParamsList = processData.getGlobalParams(); List<Property> globalParamsList = processData.getGlobalParams(); Loading
escheduler-api/src/main/java/cn/escheduler/api/service/ProcessInstanceService.java +15 −4 Original line number Original line Diff line number Diff line Loading @@ -346,7 +346,8 @@ public class ProcessInstanceService extends BaseDAGService { //check process instance status //check process instance status if (!processInstance.getState().typeIsFinished()) { if (!processInstance.getState().typeIsFinished()) { putMsg(result, Status.PROCESS_INSTANCE_STATE_OPERATION_ERROR, "update"); putMsg(result, Status.PROCESS_INSTANCE_STATE_OPERATION_ERROR, processInstance.getName(), processInstance.getState().toString(), "update"); return result; return result; } } Date schedule = null; Date schedule = null; Loading @@ -355,8 +356,12 @@ public class ProcessInstanceService extends BaseDAGService { } else { } else { schedule = processInstance.getScheduleTime(); schedule = processInstance.getScheduleTime(); } } processInstance.setScheduleTime(schedule); processInstance.setLocations(locations); processInstance.setConnects(connects); String globalParams = null; String globalParams = null; String originDefParams = null; String originDefParams = null; int timeout = processInstance.getTimeout(); if (StringUtils.isNotEmpty(processInstanceJson)) { if (StringUtils.isNotEmpty(processInstanceJson)) { ProcessData processData = JSONUtils.parseObject(processInstanceJson, ProcessData.class); ProcessData processData = JSONUtils.parseObject(processInstanceJson, ProcessData.class); //check workflow json is valid //check workflow json is valid Loading @@ -370,9 +375,14 @@ public class ProcessInstanceService extends BaseDAGService { Map<String, String> globalParamMap = globalParamList.stream().collect(Collectors.toMap(Property::getProp, Property::getValue)); Map<String, String> globalParamMap = globalParamList.stream().collect(Collectors.toMap(Property::getProp, Property::getValue)); globalParams = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList, globalParams = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList, processInstance.getCmdTypeIfComplement(), schedule); processInstance.getCmdTypeIfComplement(), schedule); } timeout = processData.getTimeout(); int update = processDao.updateProcessInstance(processInstanceId, processInstanceJson, processInstance.setTimeout(timeout); globalParams, schedule, flag, locations, connects); processInstance.setProcessInstanceJson(processInstanceJson); processInstance.setGlobalParams(globalParams); } // int update = processDao.updateProcessInstance(processInstanceId, processInstanceJson, // globalParams, schedule, flag, locations, connects); int update = processDao.updateProcessInstance(processInstance); int updateDefine = 1; int updateDefine = 1; if (syncDefine && StringUtils.isNotEmpty(processInstanceJson)) { if (syncDefine && StringUtils.isNotEmpty(processInstanceJson)) { ProcessDefinition processDefinition = processDao.findProcessDefineById(processInstance.getProcessDefinitionId()); ProcessDefinition processDefinition = processDao.findProcessDefineById(processInstance.getProcessDefinitionId()); Loading @@ -380,6 +390,7 @@ public class ProcessInstanceService extends BaseDAGService { processDefinition.setGlobalParams(originDefParams); processDefinition.setGlobalParams(originDefParams); processDefinition.setLocations(locations); processDefinition.setLocations(locations); processDefinition.setConnects(connects); processDefinition.setConnects(connects); processDefinition.setTimeout(timeout); updateDefine = processDefineMapper.update(processDefinition); updateDefine = processDefineMapper.update(processDefinition); } } if (update > 0 && updateDefine > 0) { if (update > 0 && updateDefine > 0) { Loading
escheduler-common/src/main/java/cn/escheduler/common/Constants.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -331,6 +331,11 @@ public final class Constants { */ */ public static final int MAX_TASK_TIMEOUT = 24 * 3600; public static final int MAX_TASK_TIMEOUT = 24 * 3600; /** * max task timeout */ public static final int MAX_PROCESS_TIMEOUT = Integer.MAX_VALUE; /** /** * heartbeat threads number * heartbeat threads number Loading
escheduler-dao/src/main/java/cn/escheduler/dao/AlertDao.java +33 −2 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,8 @@ import cn.escheduler.dao.datasource.ConnectionFactory; import cn.escheduler.dao.mapper.AlertMapper; import cn.escheduler.dao.mapper.AlertMapper; import cn.escheduler.dao.mapper.UserAlertGroupMapper; import cn.escheduler.dao.mapper.UserAlertGroupMapper; import cn.escheduler.dao.model.Alert; import cn.escheduler.dao.model.Alert; import cn.escheduler.dao.model.ProcessDefinition; import cn.escheduler.dao.model.ProcessInstance; import cn.escheduler.dao.model.User; import cn.escheduler.dao.model.User; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.Logger; Loading Loading @@ -83,8 +85,9 @@ public class AlertDao extends AbstractBaseDao { */ */ public void sendServerStopedAlert(int alertgroupId,String host,String serverType){ public void sendServerStopedAlert(int alertgroupId,String host,String serverType){ Alert alert = new Alert(); Alert alert = new Alert(); String content = String.format("[{'type':'%s','host':'%s','event':'服务挂掉','警告级别':'严重'}]",serverType,host); String content = String.format("[{'type':'%s','host':'%s','event':'server down','warning level':'serious'}]", alert.setTitle("容错告警"); serverType, host); alert.setTitle("Fault tolerance warning"); alert.setShowType(ShowType.TABLE); alert.setShowType(ShowType.TABLE); alert.setContent(content); alert.setContent(content); alert.setAlertType(AlertType.EMAIL); alert.setAlertType(AlertType.EMAIL); Loading @@ -94,6 +97,34 @@ public class AlertDao extends AbstractBaseDao { alertMapper.insert(alert); alertMapper.insert(alert); } } /** * process time out alert * @param processInstance * @param processDefinition */ public void sendProcessTimeoutAlert(ProcessInstance processInstance, ProcessDefinition processDefinition){ int alertgroupId = processInstance.getWarningGroupId(); String receivers = processDefinition.getReceivers(); String receiversCc = processDefinition.getReceiversCc(); Alert alert = new Alert(); String content = String.format("[{'id':'%d','name':'%s','event':'timeout','warnLevel':'middle'}]", processInstance.getId(), processInstance.getName()); alert.setTitle("Process Timeout Warn"); alert.setShowType(ShowType.TABLE); alert.setContent(content); alert.setAlertType(AlertType.EMAIL); alert.setAlertGroupId(alertgroupId); if (StringUtils.isNotEmpty(receivers)) { alert.setReceivers(receivers); } if (StringUtils.isNotEmpty(receiversCc)) { alert.setReceiversCc(receiversCc); } alert.setCreateTime(new Date()); alert.setUpdateTime(new Date()); alertMapper.insert(alert); } /** /** * task timeout warn * task timeout warn */ */ Loading
escheduler-dao/src/main/java/cn/escheduler/dao/ProcessDao.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -482,6 +482,7 @@ public class ProcessDao extends AbstractBaseDao { // set process instance priority // set process instance priority processInstance.setProcessInstancePriority(command.getProcessInstancePriority()); processInstance.setProcessInstancePriority(command.getProcessInstancePriority()); processInstance.setWorkerGroupId(command.getWorkerGroupId()); processInstance.setWorkerGroupId(command.getWorkerGroupId()); processInstance.setTimeout(processDefinition.getTimeout()); return processInstance; return processInstance; } } Loading