Open-Job
最新分布式任务调度系统,项目官方文档地址
在线体验地址,账号:lijunping,密码:123456
🎨 Open-Job 介绍
最新的轻量级分布式任务调度系统
✨ 已实现功能点
-
定时任务基于时间轮算法实现,支持动态修改任务状态,同时支持拓展其他实现方式
-
客户端与服务端通信采用 Grpc,同时支持 Netty
-
注册中心支持 Nacos、Zookeeper,同时支持拓展其他注册中心,而且支持节点动态上线下线
-
执行器支持集群部署,支持负载均衡,默认提供了一致性hash、随机权重算法,支持多种容错机制,默认提供了失败重试、故障转移等机制,负载均衡和容错都支持拓展
-
任务监控报警能力支持
-
前后端分离,管理后台基于 antd-pro 搭建
-
支持多应用任务调度
-
支持调度脚本
-
支持前后端统一部署,代码分支为:beta
-
调度完成后可查看任务具体是哪个节点执行的,可在任务执行日志中查看
-
支持任务分片执行,解决大任务问题,大大提升任务执行效率
🍪 快速开始
1 搭建任务管理系统
- 下载本项目
git clone https://github.com/lijunping365/Open-Job.git
2. 创建数据库表
sql 文件在 doc/db/open_job.sql
- 启动 Dashboard 服务
@EnableSecurity
@EnableScheduling
@EnableOpenRpcClient
@SpringBootApplication
public class JobDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(JobDashboardApplication.class, args);
}
}
- 启动执行器
@EnableOpenRpcServer
@SpringBootApplication
public class JobClientApplication {
public static void main(String[] args) {
SpringApplication.run(JobClientApplication.class, args);
}
}
- 下载前端项目
git clone https://github.com/lijunping365/Open-Job-Admin.git
6. 安装依赖
npm install
7. 启动前端项目
npm start
2 创建 JobHandler
示例1
@Slf4j
@JobHandler(name = "job-one")
@Component
public class OpenJobHandlerOne implements OpenJobHandler {
@Override
public void handler(JobParam jobParam) {
log.info("JobHandlerOne 处理任务");
}
}
示例2
@Slf4j
@Component
public class OpenJobHandlerMethodOne{
@JobHandler(name = "job-method-one1")
public void handlerOne1(JobParam jobParam) {
log.info("JobHandlerOne 处理任务, 任务参数 {}", jobParam.getParams());
}
@JobHandler(name = "job-method-one2")
public void handlerOne2(JobParam jobParam) {
log.info("JobHandlerOne 处理任务, 任务参数 {}", jobParam.getParams());
}
}