schedule-client


License

License

Categories

Categories

CLI User Interface
GroupId

GroupId

com.github.fishlikewater
ArtifactId

ArtifactId

schedule-client
Last Version

Last Version

1.0.1.RELEASE
Release Date

Release Date

Type

Type

jar
Description

Description

schedule-client
schedule-client
Project URL

Project URL

http://www.nepxion.com

Download schedule-client

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.fishlikewater/schedule-client/ -->
<dependency>
    <groupId>com.github.fishlikewater</groupId>
    <artifactId>schedule-client</artifactId>
    <version>1.0.1.RELEASE</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.fishlikewater/schedule-client/
implementation 'com.github.fishlikewater:schedule-client:1.0.1.RELEASE'
// https://jarcasting.com/artifacts/com.github.fishlikewater/schedule-client/
implementation ("com.github.fishlikewater:schedule-client:1.0.1.RELEASE")
'com.github.fishlikewater:schedule-client:jar:1.0.1.RELEASE'
<dependency org="com.github.fishlikewater" name="schedule-client" rev="1.0.1.RELEASE">
  <artifact name="schedule-client" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.fishlikewater', module='schedule-client', version='1.0.1.RELEASE')
)
libraryDependencies += "com.github.fishlikewater" % "schedule-client" % "1.0.1.RELEASE"
[com.github.fishlikewater/schedule-client "1.0.1.RELEASE"]

Dependencies

compile (5)

Group / Artifact Type Version
com.github.fishlikewater : schedule-common jar 1.0.1.RELEASE
io.netty : netty-all jar 4.1.31.Final
org.projectlombok : lombok jar 1.16.18
org.slf4j : slf4j-api jar 1.7.25
org.slf4j : slf4j-log4j12 jar 1.7.25

test (1)

Group / Artifact Type Version
junit : junit jar 4.11

Project Modules

There are no modules declared in this project.

schedule

最新更新

2019-01-09

优化分配器及添加数据持久化处理(单机控制中心),

添加统一控制台(2019-01-08)

添加控制台web操作页面,页面模板采用kitadmin kitadmin

介绍

轻量的分布式任务调度框架。

安装教程

业务端

<dependency>
     <groupId>com.github.fishlikewater</groupId>
     <artifactId>spring-boot-schedule-client-stater</artifactId>
     <version>0.0.2.RELEASE</version>
 </dependency>        

控制台

启动spring-boot-schedule-server-console项目

操作

1.执行记录

Image text

2.任务列表及更新任务信息 Image text Image text

使用

客户端单实例使用

  1. 在启动类上加上: @EnableSigleSchedule 注解

  2. 在配置文件中配置 任务包路径,多个包以逗号分隔

schedule.client.base-package=com.fishlikewater.client.sample.schedule
  1. 编写任务类,实现com.fishlikewater.schedule.common.ScheduleJob接口,并在类上加上注解@Schedule,注解属性包含corn表达式及任务描述
@Schedule(value = "0/10 * * * * *", desc = "测试定时任务1")
public class ScheduleServer1 implements ScheduleJob {
    @Override
    public void run() {
        System.out.println("ScheduleServer1");
    }
}

客户端及分配中心多实例部署

1.启动调度中心

schedule.server.server-port=8081
schedule.server.redis-address=redis://localhost:6379/0 //部署多个分配中心使用redis共享数据
@SpringBootApplication
@EnableScheduleServer//单分配中心
@EnableClusterScheduleServer //多分配中心部署
public class SpringBootScheduleServerSampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootScheduleServerSampleApplication.class, args);
    }

}
  1. 在启动类上加上: @EnableClusterSchedule 注解

  2. 配置任务包路径,与调度中心心跳检测间隔

spring.application.name=sample //必须配置
schedule.client.base-package=com.fishlikewater.client.sample.schedule
schedule.client.server-host=127.0.0.1 //调度中心host地址
schedule.client.match-unit=second //任务秒及还是分级(精确到秒还是分) 单独使用客户端时生效
schedule.client.server-port=8081 //调度中心地址端口
schedule.client.health-beat=60 //心跳检测间隔 秒
schedule.client.retry-interval=60 //断线重连间隔 秒
schedule.client.server-address=127.0.0.1:8080,127.0.0.1:8081 //调度中心地址 配置改项时 host与port配置不生效

更新历史

添加统一控制台(2019-01-04)

项目spring-boot-schedule-server-console为统一控制

提供查询修改接口

  1. /schedule/all(GET) 获取所有的任务

  2. /schedule/record(GET) 获取所有已执行记录

  3. /schedule/status(POST) 开启或停止任务

Versions

Version
1.0.1.RELEASE
1.0.0.RELEASE