Commit a45be81b by huangfusuper

Merge remote-tracking branch 'origin/developer' into developer

parents 94a5a3a6 8fcd3190
...@@ -77,4 +77,10 @@ public class ApiNodeController { ...@@ -77,4 +77,10 @@ public class ApiNodeController {
return ResponseResult.ok(jobTaskRunLogList); return ResponseResult.ok(jobTaskRunLogList);
} }
@PostMapping("runJavaTask")
public ResponseResult runJavaTask(String jobName){
apiNodeService.runJavaTask(jobName);
return ResponseResult.ok("SUCCESS");
}
} }
...@@ -78,4 +78,6 @@ public interface ApiNodeService { ...@@ -78,4 +78,6 @@ public interface ApiNodeService {
List<JobTaskRunLog> loadLogByJobName(String param); List<JobTaskRunLog> loadLogByJobName(String param);
List<JobTaskRunLog> loadLogByTaskName(String param); List<JobTaskRunLog> loadLogByTaskName(String param);
void runJavaTask(String jobName);
} }
...@@ -6,6 +6,7 @@ import com.byit.dto.plugin.JavaTask; ...@@ -6,6 +6,7 @@ import com.byit.dto.plugin.JavaTask;
import com.byit.dto.plugin.RunLog; import com.byit.dto.plugin.RunLog;
import com.byit.dto.plugin.RunNode; import com.byit.dto.plugin.RunNode;
import com.byit.enums.NodePropertyEnum; import com.byit.enums.NodePropertyEnum;
import com.byit.enums.NodeTypeEnum;
import com.byit.enums.ScheduleTypeEnum; import com.byit.enums.ScheduleTypeEnum;
import com.byit.job.WorkRoulette; import com.byit.job.WorkRoulette;
import com.byit.job.utils.CronExpression; import com.byit.job.utils.CronExpression;
...@@ -29,6 +30,7 @@ import javax.annotation.Resource; ...@@ -29,6 +30,7 @@ import javax.annotation.Resource;
import java.text.ParseException; import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.UUID;
import static com.alibaba.fastjson.serializer.SerializerFeature.WriteClassName; import static com.alibaba.fastjson.serializer.SerializerFeature.WriteClassName;
...@@ -201,6 +203,38 @@ public class ApiNodeServiceImpl implements ApiNodeService { ...@@ -201,6 +203,38 @@ public class ApiNodeServiceImpl implements ApiNodeService {
return jobTaskRunLogList; return jobTaskRunLogList;
} }
@Override
public void runJavaTask(String jobName) {
ValidationUtil.dataNotBank(jobName, "jobName不允许为空!");
JavaTask javaTask = javaTaskMapper.findByJobName(jobName);
ValidationUtil.dataNotNull(javaTask, "没有此任务实例!");
Long triggerTime = System.currentTimeMillis();
String runId = UUID.randomUUID().toString().replace("-","");
JobTaskSchedule schedule = new JobTaskSchedule();
schedule.setNodeId(Integer.valueOf(javaTask.getId()));
schedule.setRunId(runId);
schedule.setNodeName(javaTask.getJobName());
schedule.setIsVirtual(NodePropertyEnum.ISNOT_VIRTUAL.getCode());
schedule.setJobType(NodeTypeEnum.JAVA.getCode());
schedule.setTriggerTime(triggerTime);
schedule.setScheduleType(ScheduleTypeEnum.JAVA_SYNC.getCode());
schedule.setRunParam(PlaceholderUtils.formatParam(javaTask.getParam()));
JobTaskRunLogWithBLOBs jobTaskRunLog = new JobTaskRunLogWithBLOBs();
BeanUtils.copyProperties(schedule, jobTaskRunLog);
jobTaskRunLogMapper.saveJobTaskRunLog(jobTaskRunLog);
//获取日志id
Integer logId= jobTaskRunLog.getLogId();
//设置日志id
schedule.setLogId(logId);
TimerTask timerTask = new ScriptExecutorJobTask(schedule);
WorkRoulette.addJob(timerTask, triggerTime);
}
private JavaTask validate(String param) throws Exception { private JavaTask validate(String param) throws Exception {
ValidationUtil.dataNotBank(param, "请求参数不允许为空!"); ValidationUtil.dataNotBank(param, "请求参数不允许为空!");
JavaTask javaTask = JSON.parseObject(param, JavaTask.class); JavaTask javaTask = JSON.parseObject(param, JavaTask.class);
......
...@@ -66,7 +66,7 @@ public class JavaTask implements Serializable { ...@@ -66,7 +66,7 @@ public class JavaTask implements Serializable {
private Date updateTime; private Date updateTime;
/** /**
* 当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警) * 当前节点的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)
*/ */
private String alarmlAction; private String alarmlAction;
......
...@@ -133,6 +133,11 @@ public class JobUtils { ...@@ -133,6 +133,11 @@ public class JobUtils {
* 根据taskName获取日志 * 根据taskName获取日志
*/ */
private static final String REQUEST_LOADLOG_TASKNAME = "api/node/loadLogByTaskName"; private static final String REQUEST_LOADLOG_TASKNAME = "api/node/loadLogByTaskName";
/**
* 立即运行quartz任务
*/
private static final String REQUEST_RUN_JAVATASK = "api/node/runJavaTask";
/** /**
* 当前项目运行环境 jar file * 当前项目运行环境 jar file
*/ */
...@@ -576,6 +581,18 @@ public class JobUtils { ...@@ -576,6 +581,18 @@ public class JobUtils {
} }
/** /**
* 立即运行quartz任务
* @param jobName
* @return
*/
public static ResponseResult runJavaTask(String jobName){
log.info("-------------立即运行quartz任务----------------------");
String response = createHttpRequest(REQUEST_RUN_JAVATASK, "jobName=" + jobName);
log.info("--------------------立即运行quartz任务,结果为:{}------------------------",response);
return JSON.parseObject(response, ResponseResult.class);
}
/**
* 判断当前的运行环境是什么 jar : table of Contents(目录) * 判断当前的运行环境是什么 jar : table of Contents(目录)
* @return jar -->true 目录 -->false * @return jar -->true 目录 -->false
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment