diff --git a/oh-my-scheduler-server/pom.xml b/oh-my-scheduler-server/pom.xml index 9c369663..68d2b914 100644 --- a/oh-my-scheduler-server/pom.xml +++ b/oh-my-scheduler-server/pom.xml @@ -13,5 +13,60 @@ 1.0.0-SNAPSHOT jar + + 2.9.2 + 2.2.6.RELEASE + + + + + + + org.springframework.boot + spring-boot-starter-web + ${springboot.version} + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + io.springfox + springfox-swagger2 + ${swagger.version} + + + + io.springfox + springfox-swagger-ui + ${swagger.version} + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${springboot.version} + + com.github.kfcfans.oms.server.OhMyApplication + + + + + repackage + + + + + + \ No newline at end of file diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/OhMyApplication.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/OhMyApplication.java new file mode 100644 index 00000000..efe6bab9 --- /dev/null +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/OhMyApplication.java @@ -0,0 +1,19 @@ +package com.github.kfcfans.oms.server; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * SpringBoot 启动入口 + * + * @author tjq + * @since 2020/3/29 + */ +@SpringBootApplication +public class OhMyApplication { + + public static void main(String[] args) { + SpringApplication.run(OhMyApplication.class, args); + } + +} diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/config/SwaggerConfig.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/config/SwaggerConfig.java new file mode 100644 index 00000000..63dc4cd4 --- /dev/null +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/config/SwaggerConfig.java @@ -0,0 +1,43 @@ +package com.github.kfcfans.oms.server.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import static springfox.documentation.builders.PathSelectors.any; + +/** + * Swagger UI 配置 + * + * @author tjq + * @since 2020/3/29 + */ +@Configuration +@EnableSwagger2 +public class SwaggerConfig { + + @Bean + public Docket createRestApi() { + // apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中 + ApiInfo apiInfo = new ApiInfoBuilder() + .title("OhMyScheduler") + .description("Distributed scheduling and computing framework.") + .license("GPL") + .termsOfServiceUrl("https://github.com/KFCFans/OhMyScheduler") + .version("DEVELOP-VERSION") + .build(); + + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo) + // select()函数返回一个ApiSelectorBuilder实例 + .select() + // 决定了暴露哪些接口给 Swagger + .paths(any()) + .build(); + } + +} diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/BaseDO.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/BaseDO.java new file mode 100644 index 00000000..3d2e3dc4 --- /dev/null +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/BaseDO.java @@ -0,0 +1,22 @@ +package com.github.kfcfans.oms.server.model; + +import java.util.Date; + +/** + * 数据库实体类基类 + * + * @author tjq + * @since 2020/3/29 + */ +public abstract class BaseDO { + + /** + * 主键 + */ + private Long id; + + private Date gmtCreate; + private Date gmtModified; + + private String attribute; +} diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/GroupInfoDO.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/GroupInfoDO.java new file mode 100644 index 00000000..66d06a40 --- /dev/null +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/GroupInfoDO.java @@ -0,0 +1,20 @@ +package com.github.kfcfans.oms.server.model; + +/** + * 分组信息表 + * + * @author tjq + * @since 2020/3/29 + */ +public class GroupInfoDO extends BaseDO { + + /** + * 分组名称 + */ + private String groupName; + /** + * 分组描述 + */ + private String groupDescription; + +} diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/JobInfoDO.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/JobInfoDO.java new file mode 100644 index 00000000..6cfe9302 --- /dev/null +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/JobInfoDO.java @@ -0,0 +1,43 @@ +package com.github.kfcfans.oms.server.model; + +/** + * 任务信息表 + * + * @author tjq + * @since 2020/3/29 + */ +public class JobInfoDO extends BaseDO { + + + /* ************************** 任务基本信息 ************************** */ + // 任务名称 + private String jobName; + // 任务描述 + private String jobDescription; + // 任务分组名称 + private String groupName; + + /* ************************** 定时参数 ************************** */ + // 时间表达式类型(CRON/API/FIX_RATE/FIX_DELAY) + private int timeExpressionType; + // 时间表达式,CRON/NULL/LONG/LONG + private String timeExpression; + + + /* ************************** 执行方式 ************************** */ + // 执行类型,单机/广播/MR + private int executeType; + // 执行器类型,Java/Shell + private int processorType; + // 执行器信息 + private String processorInfo; + + /* ************************** 运行时配置 ************************** */ + // 并发度,同时执行的线程数量 + private int concurrency; + // 任务整体超时时间 + private long instanceTimeLimit; + // 任务的每一个Task超时时间 + private long taskTimeLimit; + +} diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/JobLogDO.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/JobLogDO.java new file mode 100644 index 00000000..39307c31 --- /dev/null +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/JobLogDO.java @@ -0,0 +1,22 @@ +package com.github.kfcfans.oms.server.model; + +/** + * 任务运行日志表 + * + * @author tjq + * @since 2020/3/30 + */ +public class JobLogDO extends BaseDO { + + // 任务ID + private Long jobId; + // 任务实例ID + private String instanceId; + // 任务状态 运行中/成功/失败... + private int status; + // 执行结果 + private String result; + // 耗时 + private Long usedTime; + +} diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/RegisterInfoDO.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/RegisterInfoDO.java new file mode 100644 index 00000000..3c223621 --- /dev/null +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/model/RegisterInfoDO.java @@ -0,0 +1,14 @@ +package com.github.kfcfans.oms.server.model; + +/** + * 注册信息表,用于服务发现 + * + * @author tjq + * @since 2020/3/30 + */ +public class RegisterInfoDO extends BaseDO { + + private String appName; + private String currentServerAddress; + private String lastServerAddress; +} diff --git a/oh-my-scheduler-server/src/main/resources/application.properties b/oh-my-scheduler-server/src/main/resources/application.properties new file mode 100644 index 00000000..01dc25b5 --- /dev/null +++ b/oh-my-scheduler-server/src/main/resources/application.properties @@ -0,0 +1,2 @@ +# server port config +server.port=7700 \ No newline at end of file