《分布式任务调度平台XXLJOB》手册

合集下载

XXL-JOB架构图

XXL-JOB架构图

执行器服务 jetty
调度请求 queue
回调服务 执行线程 回调日志 queue 任务
调度日志 / GLUE日志
调度中心
执行器
XXL-JOB架构图 v1.3
执行器
注册模块
注册模块 调度请求 queue
JobHandler
…… 调度器 quartz
执行器服务 jetty
调度池
回调服务 执行线程 回调日志 queue 任务
调度日志 / GLUE日志
调度中心
执行器
XXL-JOB架构图 v1.5
任务管理 执行器 任务模式 JobHandler
执行器管理 注册方式 AppName 机器地址列表
调度器 (quartz)
执行器服务( jetty)
调度请求 (queue)
……
日志管理 调度日志 Rolling日志 GLUE版本日志
JobHandler
回调服务 (API)
回调线程
调度结果 (queue)
任务线程
……
数据中心 调度中心
注册服务 (API)
注册线程
自研RPC
执行器
XXL-JOB架构图 v1.8
意义:
调度中心
分 片 任 务 分片参数:0, 3 分片参数:1, 3 分片参数:2, 3 执行器集群
执行器0 执行器1 执行器2
……
其他 运行报表 失败告警 任务依赖 ……
Rolling日志 (实时)
日志服务 ( jetty)
执行日志 (Log文件)
JobHandler
回调服务 (API)
回调线程
调度结果 (queue)
任务线程
……
数据中心 调度中心

《分布式任务调度平台XXL-JOB》手册

《分布式任务调度平台XXL-JOB》手册

《分布式任务调度平台XXL-JOB》手册文档历史记录目录1:简介 (3)2:安装 (3)3:配置 (3)3.1数据库准备 (4)3.2源码准备 (5)3.3部署准备 (5)3.3.1 配置部署“调度中心” (5)3.3.2 配置部署“执行器项目” (7)4:使用 (9)步骤一:新建任务 (9)步骤二:“GLUE模式(Java)”任务开发 (10)步骤三:触发执行 (10)步骤四:查看日志 (10)5:总结 (11)1:简介XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,XXL-JOB是基于开源Quartz 调度内核的、为方便企业调度场景而开源的一款实用的调度工具。

自带任务配置页面,任务监控,分布式执行器等功能。

2:安装下载地址(最新1.9版本迭代中,可选择稳定版本1.8.2下载)码云:https:///xuxueli0323/xxl-job/tree/v1.8.23:配置解压下载文件,得到如下文件结构,- /doc :文档资料- /db :“调度数据库”建表脚本- /xxl-job-admin :调度中心,项目源码- /xxl-job-core :公共Jar依赖- /xxl-job-executor-samples :执行器,Sample示例项目3.1数据库准备使用mysql 新建数据库xxl-job ,导入下载文件夹中/doc/db/tables_xxl_job.sql 文件,应生成16张表,如图所示。

3.2源码准备按照maven格式将源码导入IDE,使用maven进行编译即可,源码结构如下xxl-job-admin:调度中心xxl-job-core:公共依赖xxl-job-executor:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器):xxl-job-executor-sample-spring:Spring版本,通过Spring容器管理执行器,比较通用;:xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器;:xxl-job-executor-sample-jfinal:JFinal版本,通过JFinal管理执行器;:xxl-job-executor-sample-nutz:Nutz版本,通过Nutz管理执行器;3.3部署准备3.3.1 配置部署“调度中心”调度中心项目:xxl-job-admin作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。

xxl-job介绍

xxl-job介绍

xxl-job介绍什么是任务调度什么是任务调度?某⼀时间段进⾏任务的操作。

具体任务调度有哪些应⽤的场景?数据同步、交易信息、清除⽤户的信息、定期发送报表数据、活动推送等。

传统实现定时任务的⽅式?Thread、TimeTask、ScheduleExecutorService、Quartz 等;不过,这⼏种⽅式都是在单点系统使⽤,⼀旦Job服务器宕机之后,就必须采取⼀些措施;具体操作如下:(1) 使⽤⼼跳检测监控⾃动重启、任务补偿机制(任务做标记)(2) 定时任务在执⾏代码的时候中间突然报错,使⽤⽇志记录错误,跳过继续执⾏,在使⽤定时Job 扫描⽇志错误记录,进⾏补偿信息。

(3) 定时Job 在执⾏的时候,导致整个 Job 异常结束掉,发送邮件通知给运维⼈员。

分布式定时任务的⽅式?XXL-Job、Elastic-job等。

不过,既然采⽤分布式,那么肯定会遇到项⽬部署集群,导致任务重复执⾏多次;具体操作如下:(1) Zookeeper 实现分布式锁,每次保证拿到锁再执⾏,效率⽐较低。

(2) 配置⽂件中加⼊定时任务的开关,但是只能保证⼀台服务器执⾏,变为单击服务器。

(3) 启动的时候使⽤数据库唯⼀标识;同样是效率低。

(4) 分布式调度任务平台,解决了任务幂等问题,Job 负载均衡轮询机制(推荐)。

那么现在我们来总结下,⾸先传统的定时任务,⼏乎⽆法做到⾼可⽤,再加上项⽬部署集群,会导致任务幂等性问题;此时分布式定时任务调度平台便发挥了作⽤,咱们拿 XXL-Job 来进⾏说明;相关作⽤如下:(1) ⽀持Job集群,Job 负载均衡轮询机制保证幂等性问题。

(2) ⽀持Job补偿,如果Job执⾏失败的话,会⾃动实现重试机制,超过重启次数后,会发送邮件通知运维⼈员。

(3) ⽀持Job⽇志记录。

(4) 动态配置定时规则,传统定时Job触发规则都是写死在代码中。

XXL-JOB简介开源社区:环境:Maven3+Jdk1.8+Mysql5.7+xxl-job执⾏原理调度平台、执⾏器、任务管理,相关解释如下:调度平台:统⼀管理任务调度的平台,负责转发任务到对应的执⾏服务器。

SpringCloud+xxl-job任务调度的简单使用

SpringCloud+xxl-job任务调度的简单使用

SpringCloud+xxl-job任务调度的简单使⽤概述: xxl-job是⼀个轻量级分布式任务调度平台,其核⼼设计⽬标是开发迅速、学习简单、轻量级、易扩展。

之前开发的SpringCloud项⽬,因为其中有个应⽤有⼏个定时任务,为了统⼀管理和更可视化以及监控提醒于是加⼊了xxl-job。

好了,废话不多说,直接上⼲货。

使⽤: 然后导⼊其中的xxl-job-admin,我把xxl-job任务调度单独抽成了⼀个服务(坚持⼀个服务专做⼀件事)然后修改application.properties的配置, 修改端⼝号,这⾥我的job应⽤端⼝是8083修改数据库的路径和账号密码 这是我的数据库配置, 然后修改这⾥这⾥在后边解释为什么要配置邮箱(发件⼈的邮箱),这⾥的密码不是登陆的密码,⽽是这⾥的授权码 这⾥简单说⼀下授权码的配置,登陆163邮箱然后点击设置,再点击POP3/SMTP/IMAP,然后再点击客户端授权密码--->开启客户端授权码--->重置授权码(如果忘记了授权码),然后设置授权码,这个授权码就是spring.mail.password的密码。

(port要填写什么根据⾃⼰的实际情况填写我给粘到下边了) 然后在xxl-job-admin服务中导⼊xxl-job-core的包<dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.1.0</version></dependency>好的,启动这个应⽤(这⾥要先启动⼀下eureka)然后访问localhost:8083(⾃⼰配置的端⼝号)如果出现这个界⾯,那就是配置成功了。

(默认账号密码是admin 123456)下⼀步要在有定时任务的应⽤中配置 在有定时任务的应⽤中导⼊xxl-job-core包(同上),然后在应⽤的yml/properties的配置⽂件中加⼊配置(这⾥我的是.yml⽂件) 然后配置好⾃⼰此应⽤的端⼝号,然后新建⼀个config去赋值(在下载的⽂件中xxl-job-2.1.0\xxl-job-2.1.0\xxl-job-executor-samples\xxl-job-executor-sample-springboot\src\main\java\com\xxl\job\executor\core\config\XxlJobConfig.java,可以直接导⼊) 然后再去新建⼀个类继承IJobHandler然后execute的⽅法中编写⾃⼰要执⾏的定时任务, 这⾥的XxlJobLogger.log是xxl收集⽇志的类,好了,到此为⽌代码⽅⾯就结束了,然后启动这个应⽤ 下⼀步: 打开localhost:8083,然后登陆进去点击执⾏器管理--->新增执⾏器(这⾥的appName就是之前在有定时任务的应⽤中的.yml/.properties⽂件中配置的appname,名称就相当于备注,排序就是列表显⽰的先后顺序,注册⽅式选⾃动注册,机器地址不⽤填写,然后保存)--->点击任务管理--->新增(这⾥的执⾏器就是刚才新增的执⾏器,任务描述就是备注,如果没有集群这⾥的路由策略就随便选⼀个就可以,cron就是执⾏定时任务的执⾏策略不懂得可以去搜搜,运⾏模式就选bean就可以具体的也可以去百度⼀下,JobHandler是之前新建的定时任务类,阻塞处理策略就不⽤解释了字⾯意思就可以理解,⼦任务id是什么呢,如果定时任务直接有业务关联要有先后顺序的话这⾥的⼦任务id就要写执⾏完这个任务需要⽴马执⾏下个任务的id,任务超时时间就是如果这个任务超过了这个设定的时间那么就会报警单位是秒,报警邮箱就是如果任务执⾏失败了那么就会给这⾥填写的邮箱发送信息,可以填写多个,那么发件⼈是谁呢,就是之前说的在xxl-job-admin中配置的163邮箱)都填写完了然后点击保存。

《分布式任务调度平台XXL_JOB》手册范本

《分布式任务调度平台XXL_JOB》手册范本

《分布式任务调度平台XXL-JOB》手册文档历史记录目录1:简介 (3)2:安装 (3)3:配置 (3)3.1数据库准备 (4)3.2源码准备 (5)3.3部署准备 (5)3.3.1 配置部署“调度中心” (5)3.3.2 配置部署“执行器项目” (7)4:使用 (9)步骤一:新建任务 (9)步骤二:“GLUE模式(Java)”任务开发 (10)步骤三:触发执行 (10)步骤四:查看日志 (10)5:总结 (11)1:简介XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,XXL-JOB是基于开源Quartz 调度核的、为方便企业调度场景而开源的一款实用的调度工具。

自带任务配置页面,任务监控,分布式执行器等功能。

2:安装下载地址(最新1.9版本迭代中,可选择稳定版本1.8.2下载)码云:https://gitee./xuxueli0323/xxl-job/tree/v1.8.23:配置解压下载文件,得到如下文件结构,- /doc :文档资料- /db :“调度数据库”建表脚本- /xxl-job-admin :调度中心,项目源码- /xxl-job-core :公共Jar依赖- /xxl-job-executor-samples :执行器,Sample示例项目3.1数据库准备使用mysql 新建数据库xxl-job ,导入下载文件夹中/doc/db/tables_xxl_job.sql 文件,应生成16表,如图所示。

3.2源码准备按照maven格式将源码导入IDE,使用maven进行编译即可,源码结构如下xxl-job-admin:调度中心xxl-job-core:公共依赖xxl-job-executor:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器):xxl-job-executor-sample-spring:Spring版本,通过Spring容器管理执行器,比较通用;:xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器;:xxl-job-executor-sample-jfinal:JFinal版本,通过JFinal管理执行器;:xxl-job-executor-sample-nutz:Nutz版本,通过Nutz管理执行器;3.3部署准备3.3.1 配置部署“调度中心”调度中心项目:xxl-job-admin作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。

分布式任务调度平台XXL-JOB搭建教程

分布式任务调度平台XXL-JOB搭建教程

分布式任务调度平台XXL-JOB搭建教程 关于分布式任务调度平台XXL-JOB,其实作者许雪⾥在其发布的中已经介绍的很清楚了,这⾥我就不做过多的介绍了,关于其搭建教程,本⼈依照其⽂档搭建起来基本上也没遇到啥问题,这⾥通过博客的形式记录下来。

1、源码下载地址 ①、GitHub: ②、码云:2、⽂档地址 ①、中⽂⽂档: ②、英⽂⽂档:3、源码结构 通过上⾯给出的源码下载地址,我们将源码clone到IDEA中,如下:4、初始化数据库 初始化脚本在上⾯源码⽬录的 /doc/db/tables_xxl_job.sql ,将此脚本在MySQL数据库中执⾏⼀遍。

执⾏完毕,会在MySQL数据库中⽣成如下 16 张表:5、配置调度中⼼ 调度中⼼就是源码中的 xxl-job-admin ⼯程,我们需要将其配置成⾃⼰需要的调度中⼼,通过该⼯程我们能够以图形化的⽅式统⼀管理任务调度平台上调度任务,负责触发调度执⾏。

①、修改调度中⼼配置⽂件 ⽂件地址:/xxl-job/xxl-job-admin/src/main/resources/xxl-job-admin.properties 配置⽂件说明:1 ### 1、调度中⼼项⽬的端⼝号以及访问路径2 server.port=80803 server.context-path=/xxl-job-admin45 ### 2、配置静态⽂件的前缀6 spring.mvc.static-path-pattern=/static/**7spring.resources.static-locations=classpath:/static/89### 3、配置模板⽂件10spring.freemarker.templateLoaderPath=classpath:/templates/11spring.freemarker.suffix=.ftl12spring.freemarker.charset=UTF-813spring.freemarker.request-context-attribute=request14spring.freemarker.settings.number_format=0.##########1516### 4、配置mybatis的mapper⽂件地址17mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml1819### 5、配置数据库的地址20spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl-job?Unicode=true&characterEncoding=UTF-8ername=root22spring.datasource.password=root_pwd23spring.datasource.driver-class-name=com.mysql.jdbc.Driver2425spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource26spring.datasource.tomcat.max-wait=1000027spring.datasource.tomcat.max-active=3028spring.datasource.tomcat.test-on-borrow=true29spring.datasource.tomcat.validation-query=SELECT 130spring.datasource.tomcat.validation-interval=300003132### 6、配置报警邮箱33spring.mail.host=34spring.mail.port=25ername=xxx@36spring.mail.password=xxx37spring.mail.properties.mail.smtp.auth=true38spring.mail.properties.mail.smtp.starttls.enable=true39spring.mail.properties.mail.smtp.starttls.required=true404142### 7、管理界⾯的登录⽤户名密码ername=admin44xxl.job.login.password=1234564546### 8、调度中⼼通讯TOKEN,⾮空时启⽤47xxl.job.accessToken=4849### 9、调度中⼼国际化设置,默认为中⽂版本,值设置为“en”时切换为英⽂版本50xxl.job.i18n= 注意:基本上上⾯的配置⽂件我们需要修改的只有第 5 点,修改数据库的地址,这要与我们前⾯初始化的数据库名称径,⽤户名密码保持⼀致; 第⼆个就是修改第 6 点,报警邮箱,因为该⼯程任务失败后有失败告警功能,可以通过邮件来提醒,如果我们需要此功能,可以配置⼀下。

一种基于XXL-JOB实现分布式调度任务的方法及系统[发明专利]

一种基于XXL-JOB实现分布式调度任务的方法及系统[发明专利]

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 201910918340.5(22)申请日 2019.09.26(71)申请人 山东浪潮通软信息科技有限公司地址 250100 山东省济南市高新区孙村镇科航路2877号(72)发明人 高新 (74)专利代理机构 济南信达专利事务所有限公司 37100代理人 姜明(51)Int.Cl.G06F 8/30(2018.01)G06F 9/50(2006.01)G06F 16/27(2019.01)(54)发明名称一种基于XXL-JOB实现分布式调度任务的方法及系统(57)摘要本发明公开了一种基于XXL -JOB实现分布式调度任务的方法及系统,属于计算机软件开发技术领域。

本发明的基于XXL -JOB实现分布式调度任务的方法配置部署调度中心,统一管理任务调度平台上调度任务,触发调度执行,并提供任务管理平台;配置部署执行器项目,接收调度中心的调度并执行;在可视化界面配置执行器及新建任务。

该发明的基于XXL -JOB实现分布式调度任务的方法能够减轻服务器压力,提高系统的运行效率,在确保各用户数据间隔的同时能完成调度任务,具有很好的推广应用价值。

权利要求书1页 说明书6页 附图1页CN 110688101 A 2020.01.14C N 110688101A1.一种基于XXL -JOB实现分布式调度任务的方法,其特征在于:该方法配置部署调度中心,统一管理任务调度平台上调度任务,触发调度执行,并提供任务管理平台;配置部署执行器项目,接收调度中心的调度并执行;在可视化界面配置执行器及新建任务。

2.根据权利要求1所述的基于XXL -JOB实现分布式调度任务的方法,其特征在于:具体包括以下步骤:S1、初始化调度数据,创建数据库;S2、配置调度中心;S3、配置执行器项目,配置项目中的配置文件;S4、新增执行器;S5、新建任务;S6、编写代码来实现执行调度任务的执行器。

分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn)

分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn)

分布式定时任务调度系统技术解决⽅案(xxl-job、Elastic-job、Saturn)1.业务场景保险⼈管系统每⽉⼯资结算,平安有150万代理⼈,如何快速的进⾏⼯资结算(数据运算型)保险短信开门红/电商双⼗⼀ 1000w+短信发送(短时汇聚型)⼯作中业务场景⾮常多,所涉及到的场景也各不相同,这使得我们定时任务系统应该集管理、调度、任务分配、监控预警为⼀体的综合调度系统,如何打造⼀套健壮的、适应不同场景的系统,技术选型尤其重要。

针对以上场景我们需要我们的分布式任务系统具备以下能⼒:1.⽀持多种作业类型(shell作业/Java作业)2.⽀持作业HA,负载均衡和失败转移3.⽀持弹性扩容(应对开门红以及促销活动)4.⽀持Job Timeout 处理5.⽀持统⼀监控和告警6.⽀持作业统⼀配置7.⽀持资源隔离和作业隔离2.定时任务调度的特点任务调度就是设点某⼀时间点⾃动触发的任务,该任务可以在时间规律上去循环执⾏。

⼀般的技术quartz、spring task、java.util.Timer,这⼏种如果在单⼀机器上跑其实问题不⼤,但是如果⼀旦应⽤于集群环境做分布式部署,就会带来⼀个致命的特点:时间驱动:系统⼀般可以通过时间来驱动,定时定点定次。

批量处理:批量处理堆积的数据更加⾼效,在不需要实时性的情况下⽐消息中间件更有优势。

⽽且有的业务逻辑只能批量处理。

如对账批处理、资⾦管理系统回盘、部分银⾏的报盘前的制盘⾮实时性:定时任务不要求实时性,⼀般不⽤于C端⽤户的交互,更多的⽤于业务数据的处理隔离性/专⼀性:可以跟其他系统分离,只关注业务数据的处理,不影响⽤户的操作和⽤户系统的性能。

基本原理:3.开源定时任务框架Quartz:Java事实上的定时任务标准。

但Quartz关注点在于定时任务⽽⾮数据,并⽆⼀套根据数据处理⽽定制化的流程。

虽然Quartz可以基于数据库实现作业的⾼可⽤,但缺少分布式并⾏调度的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《分布式任务调度平台XXL-JOB》手册
———————————————————————————————— 作者:
———————————————————————————————— 日期:
《分布式任务调度平台XXL-JOB》手册
文档历史记录
版本
日期
描述
作者
V1.0
2018-03-27
xuya
1:简介
XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,XXL-JOB是基于开源Quartz调度内核的、为方便企业调度场景而开源的一款实用的调度工具。自带任务配置页面,任务监控,分布式执行器等功能。
2:安装
下载地址(最新1.9版本迭代中,可选择稳定版本1.8.2下载)
码云:
3:配置
解压下载文件,得到如下文件结构,
- /doc :文档资料
- /db :“调度数据库”建表脚本
- /xxl-job-admin :调度中心,项目源码
- /xxl-job-core :公共Jar依赖
- /xxl-job-executor-samples :执行器,Sample示例项目
步骤一:调度中心配置
文件地址:
/xxl-job/xxl-job-admin/src/main/resources/xxl-job-admin.properties,数据库连接地址与上面所创建数据库的地址要一致。
步骤二:部署项目
可将项目编译的war包部署到tomcat中,现将war部署到192.168.110.2服务器上将war包复制到/root/apቤተ መጻሕፍቲ ባይዱche-tomcat-7.0.78/webapps目录下。启动tomcat,游览器输入
xxl-job-executor:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
:xxl-job-executor-sample-spring:Spring版本,通过Spring容器管理执行器,比较通用;ﻫ:xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器;
3.1数据库准备
使用mysql新建数据库xxl-job,导入下载文件夹中/doc/db/tables_xxl_job.sql文件,应生成16张表,如图所示。
3.2源码准备
按照maven格式将源码导入IDE,使用maven进行编译即可,源码结构如下
xxl-job-admin:调度中心
xxl-job-core:公共依赖
:xxl-job-executor-sample-jfinal:JFinal版本,通过JFinal管理执行器;
:xxl-job-executor-sample-nutz:Nutz版本,通过Nutz管理执行器;
3.3部署准备
3.3.1配置部署“调度中心”
调度中心项目:xxl-job-admin
作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
相关文档
最新文档