调度客户端(未完成)

This commit is contained in:
Administrator
2017-07-29 10:18:36 +08:00
committed by wangkang
parent 9461b5ef36
commit ead8dedde5
11 changed files with 272 additions and 6 deletions
+8 -1
View File
@@ -31,7 +31,8 @@
<module>udf-starter-amqp-rabbitmq</module>
<module>udf-starter-file</module>
<module>udf-starter-mail</module>
<module>udf-starter-scheduler</module>
<module>udf-starter-scheduler</module>
<module>udf-starter-scheduler-client</module>
</modules>
<!-- 依赖管理 -->
<dependencyManagement>
@@ -94,6 +95,12 @@
<artifactId>udf-starter-scheduler</artifactId>
<version>${udf-starter.version}</version>
</dependency>
<!-- udf-starter-scheduler-client -->
<dependency>
<groupId>com.egridcloud.udf</groupId>
<artifactId>udf-starter-scheduler-client</artifactId>
<version>${udf-starter.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 构建 -->
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="true">
<fileset name="all" enabled="true" check-config-name="checkstyle.egridcloud.com" local="false">
<file-match-pattern match-pattern="." include-pattern="true"/>
</fileset>
</fileset-config>
+4
View File
@@ -0,0 +1,4 @@
/target/
/bin/
/.classpath
/.project
+35
View File
@@ -0,0 +1,35 @@
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<!-- maven坐标 -->
<artifactId>udf-starter-scheduler-client</artifactId>
<name>udf-starter-scheduler-client</name>
<packaging>jar</packaging>
<url>http://www.egridcloud.com</url>
<!-- 父依赖 -->
<parent>
<groupId>com.egridcloud.udf</groupId>
<artifactId>udf-starter</artifactId>
<version>1.0</version>
</parent>
<!-- 依赖 -->
<dependencies>
<!-- udf-core-starter -->
<dependency>
<groupId>com.egridcloud.udf</groupId>
<artifactId>udf-starter-core</artifactId>
</dependency>
<!-- spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<!-- quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${quartz.version}</version>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,126 @@
/**
* GeneralJobParam.java
* Created at 2017-06-04
* Created by Administrator
* Copyright (C) 2016 egridcloud.com, All rights reserved.
*/
package com.egridcloud.udf.scheduler.client.domain;
import java.io.Serializable;
import java.util.Date;
import java.util.UUID;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* 描述 : GeneralJobParam
*
* @author Administrator
*
*/
@ApiModel(description = "通用作业参数")
public class GeneralJobParam implements Serializable {
/**
* 描述 : ID
*/
private static final long serialVersionUID = 1L;
/**
* 描述 : 执行ID
*/
@ApiModelProperty(value = "执行ID", required = true, dataType = "string")
private String id = UUID.randomUUID().toString();
/**
* 描述 : bean名称
*/
@ApiModelProperty(value = "bean名称", required = true, dataType = "string")
private String beanName;
/**
* 描述 : 服务端初始化开始时间
*/
@ApiModelProperty(value = "服务端初始化开始时间", required = true, dataType = "date")
private Date serverInitStartDate;
/**
* 描述 : 服务端开始执行时间
*/
@ApiModelProperty(value = "服务端开始执行时间", required = true, dataType = "date")
private Date serverStartDate;
/**
* 描述 : 获取serverInitStartDate
*
* @return the serverInitStartDate
*/
public Date getServerInitStartDate() {
return serverInitStartDate;
}
/**
* 描述 : 设置serverInitStartDate
*
* @param serverInitStartDate the serverInitStartDate to set
*/
public void setServerInitStartDate(Date serverInitStartDate) {
this.serverInitStartDate = serverInitStartDate;
}
/**
* 描述 : 获取serverStartDate
*
* @return the serverStartDate
*/
public Date getServerStartDate() {
return serverStartDate;
}
/**
* 描述 : 设置serverStartDate
*
* @param serverStartDate the serverStartDate to set
*/
public void setServerStartDate(Date serverStartDate) {
this.serverStartDate = serverStartDate;
}
/**
* 描述 : 获取id
*
* @return the id
*/
public String getId() {
return id;
}
/**
* 描述 : 设置id
*
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* 描述 : 获取beanName
*
* @return the beanName
*/
public String getBeanName() {
return beanName;
}
/**
* 描述 : 设置beanName
*
* @param beanName the beanName to set
*/
public void setBeanName(String beanName) {
this.beanName = beanName;
}
}
+5
View File
@@ -20,6 +20,11 @@
<groupId>com.egridcloud.udf</groupId>
<artifactId>udf-starter-core</artifactId>
</dependency>
<!-- udf-starter-scheduler-client -->
<dependency>
<groupId>com.egridcloud.udf</groupId>
<artifactId>udf-starter-scheduler-client</artifactId>
</dependency>
<!-- spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
@@ -0,0 +1,17 @@
/**
* IGeneralJob.java
* Created at 2017-06-04
* Created by Administrator
* Copyright (C) 2016 egridcloud.com, All rights reserved.
*/
package com.egridcloud.udf.scheduler;
/**
* 描述 : IGeneralJob
*
* @author Administrator
*
*/
public interface IGeneralJob {
}
@@ -0,0 +1,63 @@
/**
* GeneralJob.java
* Created at 2017-06-04
* Created by Administrator
* Copyright (C) 2016 egridcloud.com, All rights reserved.
*/
package com.egridcloud.udf.scheduler.job;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.egridcloud.udf.scheduler.SchException;
import com.egridcloud.udf.scheduler.client.domain.GeneralJobParam;
/**
* 描述 : GeneralJob
*
* @author Administrator
*
*/
public class GeneralJob extends AbstractBaseJob {
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext)
throws JobExecutionException {
//初始化开始时间
Date serverInitStartDate = new Date();
//从trigger中获得jobDataMap
JobDataMap jobDataMap = jobExecutionContext.getTrigger().getJobDataMap();
//获得必要字段
String beanName = jobDataMap.getString("beanName");
Boolean async = jobDataMap.getBoolean("async");
Boolean ignore = jobDataMap.getBoolean("ignore");
//校验
if (StringUtils.isBlank(beanName)) {
throw new SchException("beanName can not be empty");
}
//封装bean
GeneralJobParam generalJobParam = new GeneralJobParam();
generalJobParam.setBeanName(beanName);
generalJobParam.setServerInitStartDate(serverInitStartDate);
generalJobParam.setServerStartDate(new Date());
//判断同步还是异步
if (async) {
//保存数据
//判断是否跳过
if (ignore) {
//查询是否有正在执行的任务
//如果有,直接写入任务,状态为跳过
//跳出
}
//执行任务
//拿到结果后,更新至数据库
} else {
}
}
}
@@ -30,7 +30,7 @@ public class JobDetailMeta implements Serializable {
/**
* 描述 : 组别
*/
private String group;
private String group = "default";;
/**
* 描述 : 类型
@@ -40,7 +40,7 @@ public class JobDetailMeta implements Serializable {
/**
* 描述 : 描述
*/
private String description;
private String description = "暂无描述";
/**
* 描述 : 是否可恢复
@@ -8,6 +8,8 @@ package com.egridcloud.udf.scheduler.meta;
import java.io.Serializable;
import org.quartz.SimpleTrigger;
/**
* 描述 : SimpleTriggerMeta.java
*
@@ -24,7 +26,7 @@ public class SimpleTriggerMeta extends TriggerMeta implements Serializable {
/**
* 描述 : 重复次数
*/
private Integer repeatCount;
private Integer repeatCount = SimpleTrigger.REPEAT_INDEFINITELY;
/**
* 描述 : 执行间隔
@@ -38,12 +38,12 @@ public class TriggerMeta implements Serializable {
/**
* 描述 : 组别
*/
private String group;
private String group = "default";
/**
* 描述 : 描述
*/
private String description;
private String description = "暂无描述";
/**
* 描述 : 开始时间