All Projects → dianjiu → job-plus

dianjiu / job-plus

Licence: Apache-2.0 license
Job Plus项目是基于SpringBoot+Vue的轻量级定时任务管理系统

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to job-plus

jobor
支持秒级分布式定时任务系统, A high performance distributed task scheduling system, Support multi protocol scheduling tasks
Stars: ✭ 52 (+205.88%)
Mutual labels:  task, cron, quartz
Ruoyi Vue
(RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 596 (+3405.88%)
Mutual labels:  element, quartz, springboot
croner
Trigger functions and/or evaluate cron expressions in JavaScript. No dependencies. Most features. All environments.
Stars: ✭ 169 (+894.12%)
Mutual labels:  task, cron, job
Shardingsphere Elasticjob
Distributed scheduled job framework
Stars: ✭ 7,369 (+43247.06%)
Mutual labels:  cron, job, quartz
linda
Linda is a simple dispatcher library.
Stars: ✭ 12 (-29.41%)
Mutual labels:  task, cron, job
Go Quartz
Simple, zero-dependency scheduling library for Go
Stars: ✭ 118 (+594.12%)
Mutual labels:  cron, job, quartz
Ruoyi Vue Fast
(RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 107 (+529.41%)
Mutual labels:  element, quartz, springboot
Xxl Job
A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
Stars: ✭ 20,197 (+118705.88%)
Mutual labels:  task, job, quartz
schedule-rs
An in-process scheduler for periodic jobs. Schedule lets you run Rust functions on a cron-like schedule.
Stars: ✭ 93 (+447.06%)
Mutual labels:  task, cron, job
Dottask
Simple and easy go task framework, support loop & cron & queue
Stars: ✭ 124 (+629.41%)
Mutual labels:  task, cron
Node Rethinkdb Job Queue
A persistent job or task queue backed by RethinkDB.
Stars: ✭ 158 (+829.41%)
Mutual labels:  task, job
RuoYi-Vue-Oracle
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 225 (+1223.53%)
Mutual labels:  element, quartz
Ytask
YTask is an asynchronous task queue for handling distributed jobs in golang(go异步任务框架)
Stars: ✭ 121 (+611.76%)
Mutual labels:  task, job
Ppgo job
PPGo_Job是一款可视化的、多人多权限的、一任务多机执行的定时任务管理系统,采用golang开发,安装方便,资源消耗少,支持大并发,可同时管理多台服务器上的定时任务。
Stars: ✭ 1,152 (+6676.47%)
Mutual labels:  task, cron
Scheduler
Task scheduler for Golang
Stars: ✭ 171 (+905.88%)
Mutual labels:  task, cron
Je
A distributed job execution engine for the execution of batch jobs, workflows, remediations and more.
Stars: ✭ 30 (+76.47%)
Mutual labels:  task, job
SilkierQuartz
SilkierQuartz can host jobs using HostService and Provide a web management tools for Quartz !
Stars: ✭ 263 (+1447.06%)
Mutual labels:  cron, quartz
Taskmanager
A simple、 light(only two file)、fast 、powerful 、easy to use 、easy to extend 、 Android Library To Manager your AsyncTask/Thread/CallBack Jobqueue ! 一个超级简单,易用,轻量级,快速的异步任务管理器,类似于AsyncTask,但是比AsyncTask更好用,更易控制,从此不再写Thread ! ^_^
Stars: ✭ 25 (+47.06%)
Mutual labels:  task, job
legacy-bottlerockets
Node.js high availability queue and scheduler for background job processing
Stars: ✭ 25 (+47.06%)
Mutual labels:  cron, job
YACLib
Yet Another Concurrency Library
Stars: ✭ 193 (+1035.29%)
Mutual labels:  task, job

Job Plus

基于SpringBoot的轻量级定时任务管理系统

SpringBoot LICENSE star star

https://github.com/dianjiu/job-plus

https://gitee.com/dianjiu/job-plus

相关项目 job-plus-vue

基于Vue的Job Plus的后管UI

VUE LICENSE star star

https://github.com/dianjiu/job-plus-vue

https://gitee.com/dianjiu/job-plus-vue

技术选型

  • springboot 2.3.1
  • SpringSecurity 2.3.1
  • httpclient 4.5.12
  • quartz 2.3.2
  • druid 1.1.22
  • fastjson 1.2.71

项目功能

  1. 架构潮流:系统采用SpringBoot+VUE前后端分离,前端单独部署,Nginx负载均衡
  2. 接口友好:同时支持swagger2、knife4j两种可视化接口API调试,支持离线接口文档;
  3. 任务管理:支持通过Web页面对任务进行CRUD操作,可视化界面,快速上手;
  4. 执行记录:支持通过web页面在线查看调度结果、执行结果、下次执行时间;
  5. 实时日志:支持通过web页面实时查看执行器输出的完整的执行日志;
  6. 唯一搜索:支持通过web界面根据jobname或jobgroup进行全局唯一查询
  7. 强自定义:支持在线配置定时任务请求类型、请求路径、请求参数、Cron表达式,即时生效;
  8. 动态控制:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  9. 执行策略:支持丰富的执行策略,包括:Get请求、PostJson请求、PostFrom表单请求;
  10. 自动注册:周期性自动注册任务, 同时,也支持手动录入定时任务地址;
  11. 自动执行:系统会自动发现注册的任务并触发执行,同时,也支持手动触发-立即执行;
  12. 用户管理:支持在线管理系统用户、角色、菜单,默认管理员、开发者、普通用户三种角色;
  13. 权限控制:支持在线权限控制,管理员拥有全量权限,开发者拥有除角色管理外的所有权限,普通用户仅支持任务管理相关权限;
  14. 集群部署:支持分布式执行,系统支持集群部署,可保证任务执行的高可用;
  15. 弹性调度:一旦有任务机器上线或者下线,下次调度时将会重新分配任务;
  16. 路由策略:系统集群部署时提供丰富的路由策略,包括:轮询、随机、故障转移、忙碌转移等常用策略;
  17. 故障转移:任务路由策略选择"故障转移"情况下,如果集群中某一台机器故障,将会自动切换到一台正常的执行器发送调度请求;
  18. 阻塞策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  19. 超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  20. 重试机制:支持自定义任务重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;
  21. 消息工厂:默认提供邮件工厂的方式推送消息,同时预留扩展接口,可方便的扩展短信、钉钉等消息方式;
  22. 邮件告警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  23. 运行报表:支持实时查看运行数据,以及调度报表,如调度日期分布图,任务组执行比例比例分布图等;
  24. 事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,提供触发任务单次执行的API服务;
  25. 脚本任务:支持以GLUE分布式平台开发和运行脚本任务,包括Shell、Python、NodeJS等类型脚本;
  26. 多线并发:系统支持多线程触发调度运行,确保调度精确执行,不被堵塞;
  27. 降级隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;
  28. Gradle: 将会把最新稳定版推送到gradle中央仓库, 方便用户接入和使用;
  29. Maven: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  30. 一致性:基于Redis分布式锁保证集群分布式调度的最终一致性, 一次任务调度只会触发一次执行;
  31. 全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
  32. 跨语言:系统提供语言无关的 RESTFUL API 服务,第三方任意语言可据此对接Task Manage;
  33. 国际化:后管系统支持国际化设置,提供中文、英文两种可选语言,默认为中文;
  34. 容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;

开发进度

  • 架构潮流:系统采用SpringBoot+VUE前后端分离,前端单独部署,Nginx负载均衡
  • 接口友好:同时支持swagger2、knife4j两种可视化接口API调试,支持离线接口文档;
  • 任务管理:支持通过Web页面对任务进行CRUD操作,可视化界面,快速上手;
  • 执行记录:支持通过web页面在线查看调度结果、执行结果、下次执行时间;
  • 实时日志:支持通过web页面实时查看执行器输出的完整的执行日志;
  • 唯一搜索:支持通过web界面根据jobname或jobgroup进行全局唯一查询;
  • 强自定义:支持在线配置定时任务请求类型、请求路径、请求参数、Cron表达式,即时生效;
  • 动态控制:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  • 执行策略:支持丰富的执行策略,包括:Get请求、PostJson请求、PostFrom表单请求;
  • 自动注册:周期性自动注册任务, 同时,也支持手动录入定时任务地址;
  • 自动执行:系统会自动发现注册的任务并触发执行,同时,也支持手动触发-立即执行;
  • 用户管理:支持在线管理系统用户、角色、菜单,默认管理员、开发者、普通用户三种角色;
  • 权限控制:支持在线权限控制,管理员拥有全量权限,开发者拥有除角色管理外的所有权限,普通用户仅支持任务管理相关权限;
  • 集群部署:支持分布式执行,系统支持集群部署,可保证任务执行的高可用;
  • 弹性调度:一旦有任务机器上线或者下线,下次调度时将会重新分配任务;
  • 路由策略:系统集群部署时提供丰富的路由策略,包括:轮询、随机、故障转移、忙碌转移等常用策略;
  • 故障转移:任务路由策略选择"故障转移"情况下,如果集群中某一台机器故障,将会自动切换到一台正常的执行器发送调度请求;
  • 阻塞策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  • 重试机制:支持自定义任务重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;
  • 消息工厂:默认提供邮件工厂的方式推送消息,同时预留扩展接口,可方便的扩展短信、钉钉等消息方式;
  • 邮件告警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
  • 运行报表:支持实时查看运行数据,以及调度报表,如调度日期分布图,任务组执行比例比例分布图等;
  • 事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,提供触发任务单次执行的API服务;
  • 脚本任务:支持以GLUE分布式平台开发和运行脚本任务,包括Shell、Python、NodeJS等类型脚本;
  • 多线并发:系统支持多线程触发调度运行,确保调度精确执行,不被堵塞;
  • 降级隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;
  • Gradle: 将会把最新稳定版推送到gradle中央仓库, 方便用户接入和使用;
  • Maven: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
  • 一致性:基于Redis分布式锁保证集群分布式调度的最终一致性, 一次任务调度只会触发一次执行;
  • 全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
  • 跨语言:系统提供语言无关的 RESTFUL API 服务,第三方任意语言可据此对接Task Manage;
  • 国际化:后管系统支持国际化设置,提供中文、英文两种可选语言,默认为中文;
  • 容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;

部署方式

  1. 执行sql目录下的job-plus.sql文件,建立task_manage需要的数据库表
  2. 修改application-local.yml中的数据库连接方式
  3. 通过ftp上传job-plus-1.0-SNAPSHOT.jar、start.sh、stop.sh到服务器指定目录
  4. 进入服务器目录,执行 nohup sh start.sh & 命令启动成功
  5. 查看程序启动进程 netstat -anp | grep 18080
  6. 访问 http://localhost:18080/idnex.html 可通过web界面进行定时任务的管理

在线演示

http://jobplus.dianjiu.org.cn (部署中。。。)

项目图片

页面演示

登录页

登录页

仪表盘

仪表盘

任务管理 =》任务列表

仪表盘

任务管理 =》执行记录

仪表盘

任务管理 =》生成器 (关闭cron生成器)

仪表盘

任务管理 =》生成器 (打开cron生成器)

仪表盘

数据库演示

任务信息表

t_task_details

执行记录表

t_task_records

异常信息表

t_task_error

更新日志

Job Plus 项目介绍

Job Plus 更新日志

Job Plus 分布式ID的思考

Job Plus 执行策略的思考

关于点九

个人站点

公众号

最后致谢

感谢以下开源项目提供的项目参考

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].