Commit 81d60633 by huangfusuper

【代码重构】重写设计任务节点表,重新拆分出当前版本节点表 和所有版本节点表

parent f036c33f
package com.byit.dao;
import com.byit.job.model.MythJobFlowNodes;
import org.springframework.stereotype.Repository;
/**
* @program: byit-myth-job->JobFlowNodes
* @description: 任务流节点的dao
* @author: huangfu
* @date: 2019/12/10 14:07
**/
@Repository
public interface JobFlowNodesMapper {
/**
* 修改任务节点
* @param mythJobFlowNodes
*/
void updateMythJobFlowNodes(MythJobFlowNodes mythJobFlowNodes);
}
......@@ -44,7 +44,7 @@ public class MythJobFlowCurrent {
@Column(columnDefinition = "varchar(512) COMMENT '当前工作流的介绍'")
private String flowDesc;
/**
* 档期啊版本的工作流的超时时间
* 当前版本的工作流的超时时间
*/
@Column(columnDefinition = "bigint(20) COMMENT '档期啊版本的工作流的超时时间'")
private Long flowTimeout ;
......@@ -54,7 +54,7 @@ public class MythJobFlowCurrent {
@Column(columnDefinition = "bigint(20) COMMENT '当前版本的工作流的下次执行时间'")
private Long triggerNextTime;
/**
* 当前工作流版本重复次数
* 当前工作流版本总共重复次数
*/
@Column(columnDefinition = "int(12) COMMENT '当前工作流版本额重复次数'")
private Integer repeatCount ;
......
package com.byit.model;
import lombok.*;
import javax.persistence.*;
import java.util.Date;
/**
* @program: byit-myth-job->MythJobFlowNode
* @description: 这是任务流当前版本的节点表
* @author: huangfu
* @date: 2019/12/19 18:47
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Builder
@Entity
@Table(name = "job_flow_node_current")
@org.hibernate.annotations.Table(appliesTo = "job_flow_node_current",comment="这是任务流当前版本的节点表")
public class MythJobFlowNodeCurrent {
/**
* 当前版本节点主键
*/
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(nullable = false,columnDefinition = "INT(13) COMMENT '当前版本节点主键'")
private Integer nodeId;
/**
* 当前节点的名称
*/
@Column(nullable = false,columnDefinition = "VARCHAR(255) COMMENT '当前节点的名称'")
private String nodeName;
/**
* 本地节点(插件方) 的节点的名字
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '本地节点(插件方) 的节点的名字'")
private String localNodeHandlerName;
/**
* 这个在设置节点执行时间跟随任务流的时候,他是没用的,但是设置不跟随的时候,节点的执行按照他自己的时间执行
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '这个在设置节点执行时间跟随任务流的时候,他是没用的,但是设置不跟随的时候,节点的执行按照他自己的时间执行'")
private String nodeCron;
/**
* 节点的说明
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '节点的说明'")
private String nodeDesc;
/**
* 插件端的url集合
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '插件端的url集合'")
private String pluginUrls;
/**
* 路由策略
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '路由策略'")
private String routingStrategy;
/**
* 阻塞策略
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '阻塞策略'")
private String blockStrategy;
/**
* 调度中心端请求插件时的令牌
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '调度中心端请求插件时的令牌'")
private String callbackToken;
/**
* 插件端请求调度中心的令牌
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '插件端请求调度中心的令牌'")
private String gatewayToken;
/**
* 节点的参数
*/
@Column(columnDefinition = "VARCHAR(256) COMMENT '节点的参数'")
private String runParam;
/**
* 节点的类型 node flow
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '节点的类型 node flow' ")
private String nodeType;
/**
* 工作流ID
*/
@Column(columnDefinition = "INT(13) COMMENT '工作流ID' ")
private Integer flowId;
/**
* 该节点的依赖节点
*/
@Column(columnDefinition = "VARCHAR(256) COMMENT '该节点的依赖节点' ")
private String dependencyNodes;
/**
* 节点的超时时间 -1不超时
*/
@Column(columnDefinition = "BIGINT COMMENT '节点的超时时间 -1不超时' ")
private Long nodeTimeout;
/**
* 脚本的文件服务器路径集
*/
@Column(columnDefinition = "VARCHAR(512) COMMENT '脚本的文件服务器路径集' ")
private String scriptUrls;
/**
* 源码
*/
@Column(columnDefinition = "LONGTEXT COMMENT '源码' ")
private String runSource;
/**
* 源码备注
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '源码备注' " )
private String runSourceDesc;
/**
* 源码的修改时间
*/
@Column(columnDefinition = "DATE COMMENT '源码的修改时间' " )
private Date sourceUpdateTime;
/**
* 源码负责人
*/
@Column(columnDefinition = "varchar(32) COMMENT '源码负责人'")
private String sourcePrincipal;
/**
* 节点的任务流id
*/
@Column(columnDefinition = "int(13) COMMENT 'nodeOfFlowId'")
private Integer nodeOfFlowId;
/**
* 节点的剩余次数
*/
@Column(columnDefinition = "int(12) COMMENT '节点的剩余次数'")
private Integer remainingCount;
/**
* 当前节点总共重复次数
*/
@Column(columnDefinition = "int(12) COMMENT '当前节点总共重复次数'")
private Integer repeatCount ;
/**
* 当前节点的失败重试次数
*/
@Column(columnDefinition = "int(12) COMMENT '当前节点的失败重试次数'")
private Integer failedRetryCount;
/**
* 重试的间隔
*/
@Column(columnDefinition = "bigint(12) COMMENT '重试的间隔'")
private Long retryInterval;
/**
* 是否跟随任务流
*/
@Column(columnDefinition = "char(1) COMMENT '是否跟随任务流 1跟随 2不跟随'")
private String followTaskFlow;
/**
* 当前版本的节点的下次执行时间
*/
@Column(columnDefinition = "bigint(20) COMMENT '当前版本的节点的下次执行时间'")
private Long triggerNextTime;
}
package com.byit.model;
import lombok.*;
import javax.persistence.*;
import java.util.Date;
/**
* @program: byit-myth-job->MythJobFlowNodeVersion
* @description: 节点的版本表
* @author: huangfu
* @date: 2019/12/19 19:53
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Builder
@Entity
@Table(name = "job_flow_node_version")
@org.hibernate.annotations.Table(appliesTo = "job_flow_node_version",comment="节点的版本表")
public class MythJobFlowNodeVersion {
/**
* 当前版本节点主键
*/
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(nullable = false,columnDefinition = "INT(13) COMMENT '当前版本节点主键'")
private Integer nodeId;
/**
* 当前节点的名称
*/
@Column(nullable = false,columnDefinition = "VARCHAR(255) COMMENT '当前节点的名称'")
private String nodeName;
/**
* 本地节点(插件方) 的节点的名字
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '本地节点(插件方) 的节点的名字'")
private String localNodeHandlerName;
/**
* 这个在设置节点执行时间跟随任务流的时候,他是没用的,但是设置不跟随的时候,节点的执行按照他自己的时间执行
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '这个在设置节点执行时间跟随任务流的时候,他是没用的,但是设置不跟随的时候,节点的执行按照他自己的时间执行'")
private String nodeCron;
/**
* 节点的说明
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '节点的说明'")
private String nodeDesc;
/**
* 插件端的url集合
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '插件端的url集合'")
private String pluginUrls;
/**
* 路由策略
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '路由策略'")
private String routingStrategy;
/**
* 阻塞策略
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '阻塞策略'")
private String blockStrategy;
/**
* 调度中心端请求插件时的令牌
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '调度中心端请求插件时的令牌'")
private String callbackToken;
/**
* 插件端请求调度中心的令牌
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '插件端请求调度中心的令牌'")
private String gatewayToken;
/**
* 节点的参数
*/
@Column(columnDefinition = "VARCHAR(256) COMMENT '节点的参数'")
private String runParam;
/**
* 节点的类型 node flow
*/
@Column(columnDefinition = "VARCHAR(32) COMMENT '节点的类型 node flow' ")
private String nodeType;
/**
* 工作流ID
*/
@Column(columnDefinition = "INT(13) COMMENT '工作流ID' ")
private Integer flowId;
/**
* 该节点的依赖节点
*/
@Column(columnDefinition = "VARCHAR(256) COMMENT '该节点的依赖节点' ")
private String dependencyNodes;
/**
* 节点的超时时间 -1不超时
*/
@Column(columnDefinition = "BIGINT COMMENT '节点的超时时间 -1不超时' ")
private Long nodeTimeout;
/**
* 脚本的文件服务器路径集
*/
@Column(columnDefinition = "VARCHAR(512) COMMENT '脚本的文件服务器路径集' ")
private String scriptUrls;
/**
* 源码
*/
@Column(columnDefinition = "LONGTEXT COMMENT '源码' ")
private String runSource;
/**
* 源码备注
*/
@Column(columnDefinition = "VARCHAR(255) COMMENT '源码备注' " )
private String runSourceDesc;
/**
* 源码的修改时间
*/
@Column(columnDefinition = "DATE COMMENT '源码的修改时间' " )
private Date sourceUpdateTime;
/**
* 源码负责人
*/
@Column(columnDefinition = "varchar(32) COMMENT '源码负责人'")
private String sourcePrincipal;
/**
* 节点的任务流id
*/
@Column(columnDefinition = "int(13) COMMENT 'nodeOfFlowId'")
private Integer nodeOfFlowId;
/**
* 当前节点总共重复次数
*/
@Column(columnDefinition = "int(12) COMMENT '当前节点总共重复次数'")
private Integer repeatCount ;
/**
* 当前节点的失败重试次数
*/
@Column(columnDefinition = "int(12) COMMENT '当前节点的失败重试次数'")
private Integer failedRetryCount;
/**
* 重试的间隔
*/
@Column(columnDefinition = "bigint(12) COMMENT '重试的间隔'")
private Long retryInterval;
/**
* 是否跟随任务流
*/
@Column(columnDefinition = "char(1) COMMENT '是否跟随任务流 1跟随 2不跟随'")
private String followTaskFlow;
/**
* 当前版本的节点的下次执行时间
*/
@Column(columnDefinition = "bigint(20) COMMENT '当前版本的节点的下次执行时间'")
private Long triggerNextTime;
/**
* 当前节点的版本标识
*/
@Column(columnDefinition = "char(1) COMMENT '当前节点的版本标识'")
private String versionMark;
/**
* 删除标识
*/
@Column(columnDefinition = "char(1) COMMENT '删除标识 1正常 2 删除'")
private String removeMark;
/**
* 所属工作流的id
*/
@Column(columnDefinition = "int(13) COMMENT '所属工作流的id'")
private Integer flowVersionId;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.byit.dao.JobFlowNodesMapper">
<update id="updateMythJobFlowNodes" parameterType="com.byit.job.model.MythJobFlowNodes">
UPDATE job_read_ahead
<trim prefix="SET" suffixOverrides=",">
<if test="jobName != null and jobName != ''">job_name=#{jobName},</if>
<if test="executorHandler != null and executorHandler != ''">executor_handler=#{executorHandler},</if>
<if test="jobCron != null and jobCron != ''">job_cron=#{jobCron},</if>
<if test="jobDesc != null and jobDesc != ''">job_desc=#{jobDesc},</if>
<if test="pluginUrls != null and pluginUrls != ''">plugin_urls=#{pluginUrls},</if>
<if test="routingStrategy != null and routingStrategy != ''">routing_strategy=#{routingStrategy},</if>
<if test="blockingStrategy != null and blockingStrategy != ''">blocking_strategy=#{blockingStrategy},</if>
<if test="callbackToken != null and callbackToken != ''">callback_token=#{callbackToken},</if>
<if test="gatewayToken != null and gatewayToken != ''">gateway_token = #{gatewayToken},</if>
<if test="requestHost != null and requestHost != ''">request_host =#{requestHost},</if>
<if test="requestPort != null and requestPort != ''">request_port =#{requestPort},</if>
<if test="jobParam != null and jobParam != ''">job_param =#{jobParam},</if>
<if test="jobType != null and jobType != ''">job_type=#{jobType},</if>
<if test="taskFlowId != null and taskFlowId != ''">taskflow_id =#{taskFlowId},</if>
<if test="parentId != null and parentId != ''">parent_id =#{parentId},</if>
<if test="alarmEmail != null and alarmEmail != ''">alarm_email =#{alarmEmail},</if>
<if test="executorTimeout != null">executor_timeout =#{executorTimeout},</if>
<if test="sourceUrls != null and sourceUrls != ''">source_urls =#{sourceUrls},</if>
<if test="glueSource != null and glueSource != ''">glue_source =#{glueSource},</if>
<if test="glueRemark != null and glueRemark != ''">glue_remark =#{glueRemark},</if>
<if test="glueUpdateTime != null">glue_updatetime =#{glueUpdateTime},</if>
<if test="triggerNextTime != null">trigger_next_time =#{triggerNextTime},</if>
<if test="author != null and author != ''">author=#{author},</if>
<if test="addTime != null">add_time =#{addTime},</if>
<if test="updateTime != null">update_time =#{updateTime},</if>
<if test="removalMark != null and removalMark!=''">removal_mark =#{removalMark},</if>
<if test="repeatTimes != null">repeat_times =#{repeatTimes},</if>
<if test="flowVersion != null and flowVersion!=''">flow_version =#{flowVersion},</if>
</trim>
WHERE id=#{id}
</update>
</mapper>
\ No newline at end of file
package com.byit.job.model;
import lombok.*;
import java.util.Date;
/**
* @program: byit-myth-job->MythJobFlowNodes
* @description: 任务流节点,它作为源数据表而言,所有数据都不应该参与修改操作
* @author: huangfu
* @date: 2019/12/10 14:01
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@EqualsAndHashCode
public class MythJobFlowNodes {
/**
* 任务节点的id
*/
private String id;
/**
* 任务节点的名字
*/
private String jobName;
/**
* 插件任务调度的key,调度中心会根据这个key找到对应的插件端任务,执行
*/
private String executorHandler;
/**
* 任务周期调度cron表达式
*/
private String jobCron;
/**
* 任务详情,展示在调度中心平台的备注
*/
private String jobDesc;
/**
* 插件地址的集合
*/
private String pluginUrls;
/**
* 路由策略
* 1随机(默认)
* 2轮询
* 3最近最少使用
* 4最近最久未使用算法
* 5哈希算法
*/
private String routingStrategy;
/**
* 阻塞策略:
* 1丢弃
* 2阻塞等待(默认)
*/
private String blockingStrategy;
/**
* 回调时的身份认证
*/
private String callbackToken;
/**
* 请求调度中心的token
*/
private String gatewayToken;
/**
* 调度中心主机名
*/
private String requestHost;
/**
* 调度中心端口号
*/
private String requestPort;
/**
* 任务参数
*/
private String jobParam;
/**
* 任务类型,java,python,php,script,sql.shell
*/
private String jobType;
/**
* 所属任务流的id
*/
private String taskFlowId;
/**
* 上级节点
*/
private String parentId;
/**
* 报警邮件
*/
private String alarmEmail;
/**
* 任务的超时时间
*/
private Integer executorTimeout;
/**
* 脚本文件地址(或远程文件服务器地址)支持多个,逗号分割
*/
private String sourceUrls;
/**
*调度任务源码
*/
private String glueSource;
/**
* 源码备注
*/
private String glueRemark;
/**
* 源码的修改时间
*/
private Date glueUpdateTime;
/**
* 任务创建者
*/
private String author;
/**
* 任务节点添加时间
*/
private Date addTime;
/**
* 任务节点修改时间
*/
private Date updateTime;
/**
* 删除标志 1正常 2删除
*/
private String removalMark;
/**
* 重复次数 -1永久运行
*/
private Integer repeatTimes;
/**
* 版本号
*/
private String flowVersion;
}
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