一个开源任务调度项目

​一个轻量级分布式任务调度框架 —— XXL-JOB 

开源代码比较简单易懂,文档也很齐全。它支持通过Web页面对任务进行 CRUD  操作,支持动态修改任务状态、暂停/恢复任务,以及终止运营中任务,支持在线配置调度任务入参和在线查看调度结果。

如果事与愿违,请相信一切都是最好的安排。人这一生不过是一场体验,酸甜苦辣,喜怒哀乐,品尝过了,这一生也就圆满了。古人言:“月有阴晴圆缺,人有悲欢离合,此事古难全。”人的一生,说长也不长,满打满算也就三万多天,说短也不短,从青春少年到老之将至,也有整整几十年的光阴。而这其中生活的每一步,不会都是走在宽阔平坦的大道上的,坎坷难免,泥泞也是难免。很多人在遇到了磨难时,会选择放弃,会开始抱怨命运的不公,却独独忘了“磨难成才”。我们所经历的每一件事,遇到的每一个人,都是来度我们的,我们经历的每一份惊喜,遭受的每一份痛苦,都是让我们觉悟的。所以,请记住,上天所有的安排,必然有属于它的道理,只要坚持下去,美好必然如约而至。

  1. 功能特性

  • 调度中心 HA (中心式);

  • 执行器 HA (分布式):任务分布式执行,任务“执行器”支持集群部署,可保证任务执行 HA;

  • 弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;

  • 路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;

  • 任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;

  • 任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;

  • 任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;

  • 脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;

  • ......

还有许多功能特征,大家可以自行去中文文档上看。

2. 下载

2.1 仓库地址:https://github.com/xuxueli/xxl-job

2.2 安装环境
  • Maven3+

  • Jdk1.8+

  • Mysql5.7+

3. 快速入门

3.1 初始化“调度数据库”

请下载项目源码并解压,获取 “调度数据库初始化SQL脚本” 并执行即可。

“调度数据库初始化SQL脚本” 位置为:

/xxl-job/doc/db/tables_xxl_job.sql

3.2 编译源码

解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:

xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
    :xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
    :xxl-job-executor-sample-frameless:无框架版本;

3.3 配置部署“调度中心”

调度中心项目:xxl-job-admin
作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。

步骤一:调度中心配置:

调度中心配置文件地址:

/xxl-job/xxl-job-admin/src/main/resources/application.properties

步骤二:部署项目:

如果已经正确进行上述配置,可将项目编译打包部署。

调度中心访问地址:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址)

默认登录账号 “admin/123456”, 登录后运行界面如下图所示。

image

至此“调度中心”项目已经部署成功。

世间之人,形形色色,世间之事,变化莫测。

这些人中,有人让你欢喜,有人让你忧愁,这些事里,有些成就了你,有些磨练了你......

面对生活,我们不妨用用现在网络上有一个很流行的词:“佛系”。

何为佛系?它并不真的指看破红尘出家归隐,而是一种生活态度,一切随缘,以平静和谐的态度来看待一切。

那些顺风顺水,虽会让你走得更远,但那些艰难险阻,也会让你变得更强。

史载王阳明八岁时过目成诵,十岁时下笔成诗,神童之名,名动天下。

但他却也因为仗义敢言,被朝中不少人视为眼中钉。

被贬流放不说,还被派人暗杀。

害怕家人被牵连,远匿到龙场,却又被当地人恶意攻击,濒临绝境。

但是王阳明却不恼怒,反而尽力改善当地人生活。

时日一长,山民们对王阳明从防备到爱戴。

后来王阳明讲学,这些人都是最真诚的信徒。

自二十二岁参加会试起,王阳明一生命运跌宕坎坷,甚至数次面临绝境。

可面对生命中的种种苦难,王阳明始终能保持一颗澄明的内心,入世时保境安民,出世时修心悟道。

其实这一切的秘诀不过三个字:平常心。

看到一段话:

“挫折经历得太少,才会觉得鸡毛蒜皮都是烦恼。

当你经历越多真实与虚假,看清了世界的真相之后,反而没有那么多的酸情。”

生活的真相,其实很浅显,那些经历过的困境和艰难时光最终都会塑造我们。

人生实苦,唯有自助,当你咬牙走过那段让你苦让你累的日子后,回头看看,你就会发现,正是那段日子,成就了如今的自己。

人活着不是用来蹉跎和堕落的,苦难面前,那个选择了欢歌猛进的你,必然会成为生活的英雄。

3.4 配置部署“执行器项目”

“执行器”项目:xxl-job-executor-sample-springboot (提供多种版本执行器供选择,现以 springboot 版本为例,可直接使用,也可以参考其并将现有项目改造成执行器)
作用:负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。

步骤一:maven依赖

确认pom文件中引入了 “xxl-job-core” 的maven依赖;

步骤二:执行器配置

执行器配置,配置文件地址:

/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

步骤三:执行器组件配置

执行器组件,配置文件地址:

/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java

步骤四:部署执行器项目:

如果已经正确进行上述配置,可将执行器项目编译和部署,系统提供多种执行器Sample示例项目,选择其中一个即可,各自的部署方式如下。

xxl-job-executor-sample-springboot:项目编译打包成springboot类型的可执行JAR包,命令启动即可;
xxl-job-executor-sample-frameless:项目编译打包成JAR包,命令启动即可;

至此“执行器”项目已经部署结束。

3.5 开发第一个任务“Hello World”

以新建一个 “GLUE模式(Java)” 运行模式的任务为例。

步骤一:新建任务:

登录调度中心,点击下图所示“新建任务”按钮,新建示例任务。

然后,参考下面截图中任务的参数配置,点击保存。

image

image

步骤二:“GLUE模式(Java)” 任务开发:

请点击任务右侧 “GLUE” 按钮,进入 “GLUE编辑器开发界面” ,见下图。“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码,即打印Hello World。( “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行

image

步骤三:触发执行:

请点击任务右侧 “执行” 按钮,可手动触发一次任务执行(通常情况下,通过配置Cron表达式进行任务调度触发)。

步骤四:查看日志:

请点击任务右侧 “日志” 按钮,可前往任务日志界面查看任务日志。

了解更多请查看:https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值