Commit b941669e by guominglei

任务的增删改查

parent 4551b885
......@@ -41,4 +41,28 @@ public class ApiNodeController {
return "SUCCESS";
}
@PostMapping("addJavaTask")
public String addJavaTask(String param)throws Exception {
apiNodeService.addJavaTask(param);
return "SUCCESS";
}
@PostMapping("updateJavaTask")
public String updateJavaTask(String param)throws Exception {
apiNodeService.updateJavaTask(param);
return "SUCCESS";
}
@PostMapping("deleteJavaTask")
public String deleteJavaTask(String jobName){
apiNodeService.deleteJavaTask(jobName);
return "SUCCESS";
}
@PostMapping("existJavaTask")
public Boolean existJavaTask(String jobName){
Boolean result = apiNodeService.existJavaTask(jobName);
return result;
}
}
......@@ -31,4 +31,40 @@ public interface ApiNodeService {
* @return void
*/
void autoAddJavaTask(String param) throws Exception;
/**
* 功能描述 发布任务接口
* @author gml
* @date 2020-04-14 11:27
* @param param
* @return void
*/
void addJavaTask(String param) throws Exception;
/**
* 功能描述 更新任务配置信息
* @author gml
* @date 2020-04-14 11:28
* @param param
* @return void
*/
void updateJavaTask(String param) throws Exception;
/**
* 功能描述 删除任务
* @author gml
* @date 2020-04-14 11:28
* @param jobName
* @return void
*/
void deleteJavaTask(String jobName);
/**
* 功能描述 是否存在任务
* @author gml
* @date 2020-04-14 11:54
* @param jobName
* @return java.lang.Boolean
*/
Boolean existJavaTask(String jobName);
}
......@@ -1000,13 +1000,6 @@ public class ApiFlowServiceImpl implements ApiFlowService {
}
public static void main(String[] args) throws InterruptedException {
Long triggerTime = System.currentTimeMillis();
for (int i =0; i< 10; i++ ){
Thread.sleep(100);
System.out.println(triggerTime);
}
}
private Map<String, List<WaitingTask>> buildTask(List<Node> nodeList, List<String> nodeNameList, List<String> repairTimeList, Long triggerTime, String flowName){
Map<String, List<WaitingTask>> result = new HashMap<>();
......
......@@ -108,20 +108,10 @@ public class ApiNodeServiceImpl implements ApiNodeService {
@Override
public void autoAddJavaTask(String param) throws Exception {
ValidationUtil.dataNotBank(param, "请求参数不允许为空!");
JavaTask javaTask = JSON.parseObject(param, JavaTask.class);
ValidationUtil.dataNotBank(javaTask.getTaskName(), "任务实现类的名称不允许为空!");
ValidationUtil.dataNotBank(javaTask.getCron(), "任务的调度时间不允许为空!");
ValidationUtil.isTrueValidation(!CronExpression.isValidExpression(javaTask.getCron()), "工作流cron表达式不符合规范!");
JavaTask javaTask = validate(param);
//自动发布taskName默认为jobName
javaTask.setJobName(javaTask.getTaskName());
//如果不为空且不为-1
if(null != javaTask.getRepeatCount() && -1 != javaTask.getRepeatCount()){
javaTask.setRemainingCount(javaTask.getRemainingCount());
}
if (null != javaTask.getAlarmlAction() && "0".equals(javaTask.getRepeatCount())){
ValidationUtil.dataNotBank(javaTask.getAlarmEmail(), "设置为告警时告警邮箱不允许为空");
}
JavaTask oldJavaTask = javaTaskMapper.findByJobName(javaTask.getJobName());
if (null != oldJavaTask){
//更新配置项
......@@ -139,4 +129,58 @@ public class ApiNodeServiceImpl implements ApiNodeService {
javaTaskMapper.insertSelective(javaTask);
}
}
@Override
public void addJavaTask(String param) throws Exception {
JavaTask javaTask = validate(param);
ValidationUtil.dataNotBank(javaTask.getJobName(), "jobName不允许为空");
JavaTask oldJavaTask = javaTaskMapper.findByJobName(javaTask.getJobName());
ValidationUtil.isTrueValidation(null != oldJavaTask, javaTask.getJobName() + "的任务已存在!");
javaTask.setCreateTime(new Date());
javaTaskMapper.insertSelective(javaTask);
}
@Override
public void updateJavaTask(String param) throws Exception {
JavaTask javaTask = validate(param);
ValidationUtil.dataNotBank(javaTask.getJobName(), "jobName不允许为空");
JavaTask oldJavaTask = javaTaskMapper.findByJobName(javaTask.getJobName());
ValidationUtil.dataNotNull(oldJavaTask,javaTask.getJobName() + "的任务不存在!");
javaTask.setUpdateTime(new Date());
javaTaskMapper.updateByJobName(javaTask);
}
@Override
public void deleteJavaTask(String jobName) {
ValidationUtil.dataNotBank(jobName, "jobName不允许为空!");
JavaTask javaTask = javaTaskMapper.findByJobName(jobName);
ValidationUtil.dataNotNull(javaTask, "没有此任务实例!");
javaTaskMapper.deleteByJobName(jobName);
}
@Override
public Boolean existJavaTask(String jobName) {
JavaTask javaTask = javaTaskMapper.findByJobName(jobName);
if (null == javaTask){
return false;
}
return true;
}
private JavaTask validate(String param) throws Exception {
ValidationUtil.dataNotBank(param, "请求参数不允许为空!");
JavaTask javaTask = JSON.parseObject(param, JavaTask.class);
ValidationUtil.dataNotBank(javaTask.getTaskName(), "任务实现类的名称不允许为空!");
ValidationUtil.dataNotBank(javaTask.getCron(), "任务的调度时间不允许为空!");
ValidationUtil.isTrueValidation(!CronExpression.isValidExpression(javaTask.getCron()), "工作流cron表达式不符合规范!");
javaTask.setTriggerTime(new CronExpression(javaTask.getCron()).getNextValidTimeAfter(new Date()).getTime());
//如果不为空且不为-1
if(null != javaTask.getRepeatCount() && -1 != javaTask.getRepeatCount()){
javaTask.setRemainingCount(javaTask.getRemainingCount());
}
if (null != javaTask.getAlarmlAction() && "0".equals(javaTask.getRepeatCount())){
ValidationUtil.dataNotBank(javaTask.getAlarmEmail(), "设置为告警时告警邮箱不允许为空");
}
return javaTask;
}
}
......@@ -12,4 +12,8 @@ public interface JavaTaskMapper {
int updateByIdSelective(JavaTask record);
JavaTask findByJobName(String jobName);
int deleteByJobName(String jobName);
int updateByJobName(JavaTask javaTask);
}
\ No newline at end of file
......@@ -33,6 +33,10 @@
delete from java_task
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByJobName">
delete from java_task
where job_name = #{jobName,jdbcType=VARCHAR}
</delete>
<insert id="insertSelective" parameterType="com.byit.dto.plugin.JavaTask">
<!-- generated @mbg.generated date: 2020-04-14 -->
insert into java_task
......@@ -153,6 +157,44 @@
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByJobName"parameterType="com.byit.dto.plugin.JavaTask">
<!-- generated @mbg.generated date: 2020-04-14 -->
update java_task
<set>
<if test="taskName != null">
task_name = #{taskName,jdbcType=VARCHAR},
</if>
<if test="repeatCount != null">
repeat_count = #{repeatCount,jdbcType=INTEGER},
</if>
<if test="param != null">
param = #{param,jdbcType=VARCHAR},
</if>
<if test="triggerTime != null">
trigger_time = #{triggerTime,jdbcType=BIGINT},
</if>
<if test="cron != null">
cron = #{cron,jdbcType=VARCHAR},
</if>
<if test="remainingCount != null">
remaining_count = #{remainingCount,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="alarmlAction != null">
alarml_action = #{alarmlAction,jdbcType=CHAR},
</if>
<if test="alarmEmail != null">
alarm_email = #{alarmEmail,jdbcType=VARCHAR},
</if>
</set>
where job_name = #{jobName,jdbcType=VARCHAR},
</update>
<select id="findByJobName" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
......
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