Commit 7d4d61ff by huangfusuper

完善调度中心与插件端的通讯数据交换!添加任务回调,传递任务信息

parent c55f178b
package com.byit.controller; package com.byit.controller;
import com.byit.job.WorkRoulette; import com.byit.job.dto.PluginJobRunResultDto;
import com.byit.job.model.MythJobFlightSchedule;
import com.byit.job.model.MythJobReadAhead; import com.byit.job.model.MythJobReadAhead;
import com.byit.job.model.PluginBeanJobInfo; import com.byit.job.dto.PluginBeanJobInfo;
import com.byit.job.utils.SourceObj2TargetObjUtil; import com.byit.job.utils.SourceObj2TargetObjUtil;
import com.byit.job.vo.ReturnResult; import com.byit.job.vo.ReturnResult;
import com.byit.service.JobReadAheadService; import com.byit.service.JobReadAheadService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.sql.DataSource;
import java.util.List; import java.util.List;
/** /**
...@@ -32,8 +30,8 @@ public class JobController { ...@@ -32,8 +30,8 @@ public class JobController {
} }
@PostMapping(value = "callbackRes") @PostMapping(value = "callbackRes")
public String callbackRes(@RequestBody ReturnResult<String> result){ public String callbackRes(@RequestBody PluginJobRunResultDto pluginJobRunResultDto){
System.out.println(result.getCode()+"-----"+result.getMsg()); System.out.println(pluginJobRunResultDto.getReturnResult().getCode()+"-----"+pluginJobRunResultDto.getReturnResult().getMsg());
return "好的,我知道你执行成功了"; return "好的,我知道你执行成功了";
} }
......
package com.byit.job; package com.byit.job;
import com.byit.job.model.MythJobFlightSchedule;
import com.byit.job.model.PluginBeanJobInfo;
import com.byit.task.JavaBeanJobTask;
import io.netty.util.HashedWheelTimer; import io.netty.util.HashedWheelTimer;
import io.netty.util.TimerTask; import io.netty.util.TimerTask;
......
...@@ -2,7 +2,7 @@ package com.byit.task; ...@@ -2,7 +2,7 @@ package com.byit.task;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.byit.job.dto.AdminSenPluginDto;
import com.byit.job.exceptions.plugin.PluginException; import com.byit.job.exceptions.plugin.PluginException;
import com.byit.job.model.MythJobFlightSchedule; import com.byit.job.model.MythJobFlightSchedule;
import com.byit.job.utils.IpUtil; import com.byit.job.utils.IpUtil;
...@@ -33,30 +33,19 @@ public class JavaBeanJobTask implements TimerTask { ...@@ -33,30 +33,19 @@ public class JavaBeanJobTask implements TimerTask {
String url = IpUtil.electiveUrl(mythJobFlightSchedule.getPluginUrls( ), rpcInvokerRouter); String url = IpUtil.electiveUrl(mythJobFlightSchedule.getPluginUrls( ), rpcInvokerRouter);
String jobHandelName = mythJobFlightSchedule.getExecutorHandler( ); String jobHandelName = mythJobFlightSchedule.getExecutorHandler( );
String param = mythJobFlightSchedule.getJobParam( ); String param = mythJobFlightSchedule.getJobParam( );
String runId = mythJobFlightSchedule.getRunID();
JSONObject jsonObject = new JSONObject();
jsonObject.put("jobHandelName",jobHandelName); AdminSenPluginDto adminSenPluginDto = new AdminSenPluginDto();
jsonObject.put("callbackMethod","http://127.0.0.1:8080/job/callbackRes"); adminSenPluginDto.setCallbackUrl("http://127.0.0.1:8080/job/callbackRes");
jsonObject.put("param",param); adminSenPluginDto.setJobHandelName(jobHandelName);
String result = HttpUtil.post(url, JSON.toJSONString(jsonObject),10*1000); adminSenPluginDto.setJobParam(param);
log.info("---------------{}------------",result); adminSenPluginDto.setRunId(runId);
String result = HttpUtil.post(url, JSON.toJSONString(adminSenPluginDto),10*1000);
log.debug("---------------{}------------",result);
}catch (PluginException ignored){ }catch (PluginException ignored){
log.error("--------------------{},{}-----------------",ignored.getIEnum().getCode(),ignored.getIEnum().getMsg()); log.error("-------------通讯异常:{},{}",ignored.getIEnum().getCode(),ignored.getIEnum().getMsg());
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
} }
}
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("heartbeat","PENG");
//jsonObject.put("jobHandelName","addJob");
//jsonObject.put("param","asd");
long start = System.currentTimeMillis( );
HttpUtil.post("http://10.0.55.200:8888", JSON.toJSONString(jsonObject));
System.out.println((System.currentTimeMillis( )-start) );
} }
} }
package com.byit.thread; package com.byit.thread;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.util.TypeUtils;
import com.byit.job.WorkRoulette; import com.byit.job.WorkRoulette;
import com.byit.job.model.MythJobFlightSchedule; import com.byit.job.model.MythJobFlightSchedule;
import com.byit.job.model.MythJobReadAhead; import com.byit.job.model.MythJobReadAhead;
import com.byit.service.JobFlightScheduleService; import com.byit.service.JobFlightScheduleService;
import com.byit.service.JobReadAheadService; import com.byit.service.JobReadAheadService;
import com.byit.task.JavaBeanJobTask; import com.byit.task.JavaBeanJobTask;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.sql.DataSource; import javax.sql.DataSource;
...@@ -26,7 +19,6 @@ import java.sql.PreparedStatement; ...@@ -26,7 +19,6 @@ import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
...@@ -115,9 +107,10 @@ public class JobScheduleHelper{ ...@@ -115,9 +107,10 @@ public class JobScheduleHelper{
/** /**
* 需要去检验当前任务的上级节点是否已经执行成功,没有执行,或者处于暂停状态则跳过该任务 * 需要去检验当前任务的上级节点是否已经执行成功,没有执行,或者处于暂停状态则跳过该任务
* 大概思路,根据任务流id,从任务流执行回溯表查询该任务流的所有节点,查看上级节点是否已经执行成功 * 大概思路,根据任务流id,从任务流执行回溯表查询该任务流的所有节点,查看上级节点是否已经执行成功
* //TODO 需要修改 判断父节点是否执行完毕 注意 父节点是一个集合
*/ */
if(StringUtils.isNotBlank(mythJobInfo.getParentId())){ if(StringUtils.isNotBlank(mythJobInfo.getParentId())){
log.info("任务:{}", mythJobInfo); log.debug("任务:{}", mythJobInfo);
MythJobFlightSchedule mythJobFlightSchedule = new MythJobFlightSchedule(); MythJobFlightSchedule mythJobFlightSchedule = new MythJobFlightSchedule();
BeanUtils.copyProperties(mythJobInfo,mythJobFlightSchedule); BeanUtils.copyProperties(mythJobInfo,mythJobFlightSchedule);
mythJobFlightSchedules.add(mythJobFlightSchedule); mythJobFlightSchedules.add(mythJobFlightSchedule);
...@@ -323,7 +316,4 @@ public class JobScheduleHelper{ ...@@ -323,7 +316,4 @@ public class JobScheduleHelper{
this.dataSource = dataSource; this.dataSource = dataSource;
} }
public static void main(String[] args) {
System.out.println(System.currentTimeMillis()+30*1000);
}
} }
package com.byit.job.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* @program: byit-myth-job->AdminSenPluginDto
* @description: 调度中心,通讯插件任务的节点承载
* @author: huangfu
* @date: 2019/12/16 11:19
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class AdminSenPluginDto {
/**
* 运行标识
*/
private String runId;
/**
* 插件端的任务标识
*/
private String jobHandelName;
/**
* 任务的参数
*/
private String jobParam;
/**
* 回调URL
*/
private String callbackUrl;
/**
* 检测是否有心跳参数,有心跳参数则为测试参数,且为PENG的话,服务端回复 PONG
*/
private String heartbeat;
}
package com.byit.job.model; package com.byit.job.dto;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
......
package com.byit.job.dto;
import com.byit.job.vo.ReturnResult;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.util.Date;
/**
* @program: byit-myth-job->PluginJobRunResult
* @description: 这个是插件端的执行情况通知到调度中心的数据承载
* @author: huangfu
* @date: 2019/12/16 11:04
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class PluginJobRunResultDto {
/**
* 任务的运行标识
*/
private String jobRunId;
/**
* 任务的执行结果
*/
private ReturnResult<String> returnResult;
/**
* 调度时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
}
...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.byit.job.dto.AdminSenPluginDto;
import com.byit.job.enums.plugin.PluginEnum; import com.byit.job.enums.plugin.PluginEnum;
import com.byit.job.exceptions.plugin.PluginException; import com.byit.job.exceptions.plugin.PluginException;
import com.byit.rpc.remoting.invoker.route.RpcLoadBalance; import com.byit.rpc.remoting.invoker.route.RpcLoadBalance;
...@@ -27,11 +28,11 @@ public class IpUtil { ...@@ -27,11 +28,11 @@ public class IpUtil {
*/ */
public static boolean survivalTest(String url){ public static boolean survivalTest(String url){
try{ try{
log.info("------------------开始发送心跳包--------------------"); log.debug("------------------开始发送心跳包--------------------");
JSONObject jsonObject = new JSONObject(); AdminSenPluginDto adminSenPluginDto = new AdminSenPluginDto( );
jsonObject.put("heartbeat","PENG"); adminSenPluginDto.setHeartbeat("PENG");
String heartbeatRes = HttpUtil.post(url, JSON.toJSONString(jsonObject), 2 * 1000); String heartbeatRes = HttpUtil.post(url, JSON.toJSONString(adminSenPluginDto), 2 * 1000);
log.info("------------------接收心跳包--------------------"); log.debug("------------------接收心跳包--------------------");
return "PONG".equals(heartbeatRes); return "PONG".equals(heartbeatRes);
}catch (Exception e){ }catch (Exception e){
log.error("--------------------{},服务不可用------------------",url); log.error("--------------------{},服务不可用------------------",url);
...@@ -47,7 +48,7 @@ public class IpUtil { ...@@ -47,7 +48,7 @@ public class IpUtil {
* @return * @return
*/ */
public static String electiveUrl(String urlsStr, RpcLoadBalance rpcLoadBalance) throws PluginException { public static String electiveUrl(String urlsStr, RpcLoadBalance rpcLoadBalance) throws PluginException {
log.info("-----------------开始根据路由规则选取服务地址--------------------"); log.debug("-----------------开始根据路由规则选取服务地址--------------------");
String[] urls = urlsStr.split(","); String[] urls = urlsStr.split(",");
TreeSet<String> treeSet = new TreeSet<>(Arrays.asList(urls)); TreeSet<String> treeSet = new TreeSet<>(Arrays.asList(urls));
boolean flag = false; boolean flag = false;
......
package com.byit.job.utils; package com.byit.job.utils;
import com.byit.job.model.MythJobReadAhead; import com.byit.job.model.MythJobReadAhead;
import com.byit.job.model.PluginBeanJobInfo; import com.byit.job.dto.PluginBeanJobInfo;
import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.UUID; import java.util.UUID;
......
package com.byit.rpc; package com.byit.rpc;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.byit.job.dto.AdminSenPluginDto;
import com.byit.job.handler.interfaces.IJobHandler;
import com.byit.job.vo.ReturnResult;
import com.byit.utils.JobUtils;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled; import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
...@@ -28,7 +25,7 @@ public class RunJobServerHandler extends SimpleChannelInboundHandler<FullHttpReq ...@@ -28,7 +25,7 @@ public class RunJobServerHandler extends SimpleChannelInboundHandler<FullHttpReq
/** /**
* LinkedBlockingQueue 不指定容量就变成了无界队列 * LinkedBlockingQueue 不指定容量就变成了无界队列
*/ */
private static final ThreadPoolExecutor jobTriggerPool = new ThreadPoolExecutor( private static final ThreadPoolExecutor JOB_TRIGGER_POOL = new ThreadPoolExecutor(
50, 50,
200, 200,
60L, 60L,
...@@ -40,20 +37,21 @@ public class RunJobServerHandler extends SimpleChannelInboundHandler<FullHttpReq ...@@ -40,20 +37,21 @@ public class RunJobServerHandler extends SimpleChannelInboundHandler<FullHttpReq
private static final String PONG = "PONG"; private static final String PONG = "PONG";
@Override @Override
protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest req) throws Exception { protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest req) throws Exception {
log.info("----------------------有请求过来了------------------------"); log.debug("----------------------有请求过来了------------------------");
String heartbeatResponseBody = "FAILURE"; String heartbeatResponseBody = "FAILURE";
if(req instanceof HttpRequest){ if(req != null){
JSONObject jsonObject = analysisParam(req.content( )); //解析 调度中心 的数据对象
if(null == jsonObject){ AdminSenPluginDto adminSenPluginDto = analysisParam(req.content( ));
if(null == adminSenPluginDto){
throw new Exception("核心参数 为 null"); throw new Exception("核心参数 为 null");
} }
//检测是否有心跳参数,有心跳参数则为测试参数,且为PENG的话,服务端回复 PONG //检测是否有心跳参数,有心跳参数则为测试参数,且为PENG的话,服务端回复 PONG
String heartbeat = (String)(jsonObject.get("heartbeat")); String heartbeat = adminSenPluginDto.getHeartbeat();
if(null == heartbeat){ if(null == heartbeat){
jobTriggerPool.execute(new RunJobThread(jsonObject)); JOB_TRIGGER_POOL.execute(new RunJobThread(adminSenPluginDto));
heartbeatResponseBody = "SUCCESS"; heartbeatResponseBody = "SUCCESS";
}else if(PENG.equals(heartbeat)){ }else if(PENG.equals(heartbeat)){
log.info("----------调度平台心跳检测-------------"); log.debug("----------调度平台心跳检测-------------");
heartbeatResponseBody = PONG; heartbeatResponseBody = PONG;
} }
//----------------------------------消息发送----------------------------------- //----------------------------------消息发送-----------------------------------
...@@ -75,8 +73,8 @@ public class RunJobServerHandler extends SimpleChannelInboundHandler<FullHttpReq ...@@ -75,8 +73,8 @@ public class RunJobServerHandler extends SimpleChannelInboundHandler<FullHttpReq
* @param byteBuf * @param byteBuf
* @return * @return
*/ */
private JSONObject analysisParam(ByteBuf byteBuf){ private AdminSenPluginDto analysisParam(ByteBuf byteBuf){
return JSON.parseObject(byteBuf.toString(CharsetUtil.UTF_8) ); return JSON.parseObject(byteBuf.toString(CharsetUtil.UTF_8),AdminSenPluginDto.class);
} }
/** /**
...@@ -91,36 +89,7 @@ public class RunJobServerHandler extends SimpleChannelInboundHandler<FullHttpReq ...@@ -91,36 +89,7 @@ public class RunJobServerHandler extends SimpleChannelInboundHandler<FullHttpReq
ctx.close(); ctx.close();
} }
} }
@Slf4j
class RunJobThread implements Runnable{
private JSONObject jsonObject;
public RunJobThread(JSONObject jsonObject) {
this.jsonObject = jsonObject;
}
@Override
public void run() {
String jobHandelName = ((String)(jsonObject.get("jobHandelName")));
String param = ((String)(jsonObject.get("param")));
ReturnResult<String> stringReturnResult = runJob(jobHandelName, param);
String callbackMethod = (String)jsonObject.get("callbackMethod");
String post = cn.hutool.http.HttpUtil.post(callbackMethod, JSON.toJSONString(stringReturnResult));
log.info("---------服务器端:{}:{}-------------",callbackMethod,post);
}
private ReturnResult<String> runJob(String jobHandlerName,String param){
Class<? extends IJobHandler> jobClass = JobUtils.jobCache.get(jobHandlerName);
try {
IJobHandler iJobHandler = jobClass.newInstance( );
return iJobHandler.execute(param);
} catch (Exception e) {
e.printStackTrace( );
}
return null;
}
}
package com.byit.rpc;
import com.alibaba.fastjson.JSON;
import com.byit.job.dto.AdminSenPluginDto;
import com.byit.job.dto.PluginJobRunResultDto;
import com.byit.job.handler.interfaces.IJobHandler;
import com.byit.job.vo.ReturnResult;
import com.byit.utils.JobUtils;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
/**
* @program: byit-myth-job->RunJobThread
* @description: 任务线程
* @author: huangfu
* @date: 2019/12/16 11:40
**/
@Slf4j
public class RunJobThread implements Runnable {
private AdminSenPluginDto adminSenPluginDto;
public RunJobThread(AdminSenPluginDto adminSenPluginDto) {
this.adminSenPluginDto = adminSenPluginDto;
}
@Override
public void run() {
//创建回复对象
PluginJobRunResultDto pluginJobRunResultDto = new PluginJobRunResultDto();
pluginJobRunResultDto.setStartTime(new Date());
//设定运行标识
pluginJobRunResultDto.setJobRunId(adminSenPluginDto.getRunId());
//运行任务
ReturnResult<String> stringReturnResult = runJob(adminSenPluginDto.getJobHandelName(), adminSenPluginDto.getJobParam());
//设置运行结果
pluginJobRunResultDto.setReturnResult(stringReturnResult);
//获取回调通知URL
String callbackUrl = adminSenPluginDto.getCallbackUrl();
//设置结束时间
pluginJobRunResultDto.setEndTime(new Date());
cn.hutool.http.HttpUtil.post(callbackUrl, JSON.toJSONString(pluginJobRunResultDto));
log.info("---------服务器端:{}-------------",pluginJobRunResultDto);
}
private ReturnResult<String> runJob(String jobHandlerName,String param){
Class<? extends IJobHandler> jobClass = JobUtils.jobCache.get(jobHandlerName);
try {
IJobHandler iJobHandler = jobClass.newInstance( );
return iJobHandler.execute(param);
} catch (Exception e) {
e.printStackTrace( );
}
return null;
}
}
...@@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSON; ...@@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.byit.job.enums.plugin.PluginEnum; import com.byit.job.enums.plugin.PluginEnum;
import com.byit.job.exceptions.plugin.PluginException; import com.byit.job.exceptions.plugin.PluginException;
import com.byit.job.handler.interfaces.IJobHandler; import com.byit.job.handler.interfaces.IJobHandler;
import com.byit.job.model.PluginBeanJobInfo; import com.byit.job.dto.PluginBeanJobInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
......
package com.byit.plugin.api; package com.byit.plugin.api;
import com.byit.job.model.PluginBeanJobInfo; import com.byit.job.dto.PluginBeanJobInfo;
/** /**
* @program: byit-myth-job->JobOperating * @program: byit-myth-job->JobOperating
......
package com.byit.job; package com.byit.job;
import com.byit.job.model.PluginBeanJobInfo; import com.byit.job.dto.PluginBeanJobInfo;
import com.byit.launcher.JobRunServerLauncher; import com.byit.launcher.JobRunServerLauncher;
import com.byit.rpc.remoting.invoker.route.LoadBalance; import com.byit.rpc.remoting.invoker.route.LoadBalance;
import com.byit.utils.JobUtils; import com.byit.utils.JobUtils;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:20:21 Date: 16/12/2019 10:58:04
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:20:27 Date: 16/12/2019 10:58:10
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
...@@ -28,10 +28,10 @@ CREATE TABLE `job_flight_schedule` ( ...@@ -28,10 +28,10 @@ CREATE TABLE `job_flight_schedule` (
`job_cron` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务周期调度cron表达式', `job_cron` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务周期调度cron表达式',
`job_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务详情', `job_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务详情',
`plugin_urls` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '插件方的url集合', `plugin_urls` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '插件方的url集合',
`routing_strategy` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '路由策略:1随机(默认),2轮询,3最近最少使用,4最近最久未使用算法,5哈希算法', `routing_strategy` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '路由策略:1随机(默认),2轮询,3最近最少使用,4最近最久未使用算法,5哈希算法',
`blocking_strategy` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '阻塞策略:1丢弃,2阻塞等待(默认)', `blocking_strategy` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '阻塞策略:1丢弃,2阻塞等待(默认)',
`callback_token` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回调时的身份认证', `callback_token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回调时的身份认证',
`gateway_token` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求调度中心的token', `gateway_token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求调度中心的token',
`request_host` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心主机名', `request_host` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心主机名',
`request_port` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心端口号', `request_port` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心端口号',
`job_param` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务参数', `job_param` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务参数',
...@@ -49,7 +49,7 @@ CREATE TABLE `job_flight_schedule` ( ...@@ -49,7 +49,7 @@ CREATE TABLE `job_flight_schedule` (
`author` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务负责人', `author` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '任务负责人',
`add_time` datetime(0) NULL DEFAULT NULL COMMENT '任务节点添加时间', `add_time` datetime(0) NULL DEFAULT NULL COMMENT '任务节点添加时间',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '任务节点修改时间', `update_time` datetime(0) NULL DEFAULT NULL COMMENT '任务节点修改时间',
`run_id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `run_id` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '运行标识',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:20:34 Date: 16/12/2019 10:58:16
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:20:42 Date: 16/12/2019 10:58:24
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
...@@ -28,10 +28,10 @@ CREATE TABLE `job_flow_nodes` ( ...@@ -28,10 +28,10 @@ CREATE TABLE `job_flow_nodes` (
`job_cron` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务周期调度cron表达式', `job_cron` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务周期调度cron表达式',
`job_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务详情', `job_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务详情',
`plugin_urls` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '插件方的url集合', `plugin_urls` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '插件方的url集合',
`routing_strategy` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '路由策略:1随机(默认),2轮询,3最近最少使用,4最近最久未使用算法,5哈希算法', `routing_strategy` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '路由策略:1随机(默认),2轮询,3最近最少使用,4最近最久未使用算法,5哈希算法',
`blocking_strategy` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '阻塞策略:1丢弃,2阻塞等待(默认)', `blocking_strategy` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '阻塞策略:1丢弃,2阻塞等待(默认)',
`callback_token` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回调时的身份认证', `callback_token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回调时的身份认证',
`gateway_token` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求调度中心的token', `gateway_token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求调度中心的token',
`request_host` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心主机名', `request_host` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心主机名',
`request_port` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心端口号', `request_port` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心端口号',
`job_param` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务参数', `job_param` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务参数',
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:20:47 Date: 16/12/2019 10:58:29
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:20:55 Date: 16/12/2019 10:58:35
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
...@@ -27,4 +27,10 @@ CREATE TABLE `job_lock` ( ...@@ -27,4 +27,10 @@ CREATE TABLE `job_lock` (
PRIMARY KEY (`lock_name`) USING BTREE PRIMARY KEY (`lock_name`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of job_lock
-- ----------------------------
INSERT INTO `job_lock` VALUES ('scanning_job_flight_schedule', '扫描job_flight_schedule表,添加到任务轮里面的表');
INSERT INTO `job_lock` VALUES ('scanning_job_read_ahead', '扫描job_read_ahead表,添加到排期表的行锁');
SET FOREIGN_KEY_CHECKS = 1; SET FOREIGN_KEY_CHECKS = 1;
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:21:00 Date: 16/12/2019 10:58:40
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:21:04 Date: 16/12/2019 10:58:45
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Target Server Version : 50721 Target Server Version : 50721
File Encoding : 65001 File Encoding : 65001
Date: 13/12/2019 10:21:09 Date: 16/12/2019 10:58:50
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
...@@ -28,10 +28,10 @@ CREATE TABLE `job_read_ahead` ( ...@@ -28,10 +28,10 @@ CREATE TABLE `job_read_ahead` (
`job_cron` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务周期调度cron表达式', `job_cron` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务周期调度cron表达式',
`job_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务详情', `job_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务详情',
`plugin_urls` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '插件方的url集合', `plugin_urls` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '插件方的url集合',
`routing_strategy` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '路由策略:1随机(默认),2轮询,3最近最少使用,4最近最久未使用算法,5哈希算法', `routing_strategy` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '路由策略:1随机(默认),2轮询,3最近最少使用,4最近最久未使用算法,5哈希算法',
`blocking_strategy` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '阻塞策略:1丢弃,2阻塞等待(默认)', `blocking_strategy` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '阻塞策略:1丢弃,2阻塞等待(默认)',
`callback_token` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回调时的身份认证', `callback_token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '回调时的身份认证',
`gateway_token` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求调度中心的token', `gateway_token` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '请求调度中心的token',
`request_host` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心主机名', `request_host` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心主机名',
`request_port` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心端口号', `request_port` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '调度中心端口号',
`job_param` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务参数', `job_param` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '任务参数',
......
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