概述:
xxl-job是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。
之前开发的SpringCloud项目,因为其中有个应用有几个定时任务,为了统一管理和更可视化以及监控提醒于是加入了xxl-job。好了,废话不多说,直接上干货。
使用:
首先在github上下载源码https://github.com/xuxueli/xxl-job,导入/xxl-job/doc/db/tables_xxl_job.sql的sql文件
然后导入其中的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.0xxl-job-2.1.0xxl-job-executor-samplesxxl-job-executor-sample-springbootsrcmainjavacomxxljobexecutorcoreconfigXxlJobConfig.java,可以直接导入)
然后再去新建一个类继承IJobHandler然后execute的方法中编写自己要执行的定时任务,
这里的XxlJobLogger.log是xxl收集日志的类,好了,到此为止代码方面就结束了,然后启动这个应用
下一步:
打开localhost:8083,然后登陆进去点击执行器管理--->新增执行器(这里的appName就是之前在有定时任务的应用中的.yml/.properties文件中配置的appname,名称就相当于备注,排序就是列表显示的先后顺序,注册方式选自动注册,机器地址不用填写,然后保存)--->点击任务管理--->新增(这里的执行器就是刚才新增的执行器,任务描述就是备注,如果没有集群这里的路由策略就随便选一个就可以,cron就是执行定时任务的执行策略不懂得可以去搜搜,运行模式就选bean就可以具体的也可以去百度一下,JobHandler是之前新建的定时任务类,阻塞处理策略就不用解释了字面意思就可以理解,子任务id是什么呢,如果定时任务直接有业务关联要有先后顺序的话这里的子任务id就要写执行完这个任务需要立马执行下个任务的id,任务超时时间就是如果这个任务超过了这个设定的时间那么就会报警单位是秒,报警邮箱就是如果任务执行失败了那么就会给这里填写的邮箱发送信息,可以填写多个,那么发件人是谁呢,就是之前说的在xxl-job-admin中配置的163邮箱)都填写完了然后点击保存。
下一步:
这里填写完了就要执行这里的操作了(执行就是执行一次,启动就会根据填写的cron去定时的执行)
xxl-job是个开源的平台,里边的外观功能都可以自己去修改和定义的。
好了,大致就是这些了,如果有说的不对的地方还希望大家指点出来。