最新开源分布式定时任务调度系统
Open-Job
🔥2022 最新的轻量级分布式任务调度系统
🎨 Open-Job 介绍
开源分布式任务调度系统,项目官方文档地址
✨ 已实现功能点
-
定时任务基于 redis 实现,支持动态修改任务状态,同时支持拓展其他实现方式
-
客户端与服务端通信采用 Grpc,同时支持拓展其他通信方式
-
注册中心支持 Nacos、Zookeeper,同时支持拓展其他注册中心,而且支持节点动态上线下线
-
客户端集群部署支持负载均衡,默认提供了一致性hash、随机权重算法,支持多种容错机制,默认提供了失败重试、故障转移等机制,负载均衡和容错都支持拓展
-
任务监控报警能力支持
-
前后端分离,管理后台基于 antd-pro 搭建
-
支持多应用任务调度
🍪 快速开始
1 搭建任务管理系统
- 下载本项目
git clone https://github.com/lijunping365/Open-Job.git
- 创建数据库表
sql 文件在 doc/open_job.sql
- 下载前端项目
git clone https://github.com/lijunping365/Open-Job-Admin.git
需安装 node.js,
- 启动服务端,启动前端项目
登录任务管理系统创建任务,之后便可以进行任务管理了
2 搭建任务执行模块
创建任务执行模块可按照项目中客户端示例工程搭建
- 在任务执行项目中加入以下依赖
<dependency>
<groupId>com.saucesubfresh</groupId>
<artifactId>open-rpc-server</artifactId>
<version>1.0.6</version>
</dependency>
- 创建任务执行类并实现 JobHandler
示例1(类模式)
@Slf4j
@JobHandler(name = "job-one")
@Component
public class OpenJobHandlerOne implements OpenJobHandler {
@Override
public void handler(String params) {
log.info("JobHandlerOne 处理任务");
}
}
示例2(方法模式)
@Slf4j
@Component
public class OpenJobHandlerMethodOne{
@JobHandler(name = "job-method-one1")
public void handlerOne1(String params) {
log.info("JobHandlerOne 处理任务, 任务参数 {}", params);
}
@JobHandler(name = "job-method-one2")
public void handlerOne2(String params) {
log.info("JobHandlerOne 处理任务, 任务参数 {}", params);
}
}
❓ FAQ
有问题可以提 issues,我会及时解答
Contributing
欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 Issue 讨论新特性或者变更。
Copyright and License
产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。如有需要可邮件联系作者免费获取项目授权。
- Licensed under the Apache License v2.0.
- Copyright (c) 2022-present, lijunping.
🎉收尾
-
欢迎大家的关注和使用,欢迎 star,本项目将持续更新
-
欢迎接入的公司在 登记地址 登记,登记仅仅为了产品推广。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?