为什么应用
对于定时工作,各种框架档次不穷,但通过比照最终一句话总结:xxl-job 配置更简略,且性能更弱小。所以这就是咱们应用它的起因,而接下来以疾速上手为例,不做太多其余性能解说,只为疾速应用开发
开始工作
- 首先从官网中间接下载整个工程的 zip 压缩包
- Gitee 地址:https://gitee.com/xuxueli0323/xxl-job
- Github 地址 : https://github.com/xuxueli/xxl-job/
- 解压文件后,进入文件目录 doc → db 获取 tables_xxl_job.sql 文件在数据库中进行执行,该文件会主动创立工程所依赖的 xxl_job 数据库及相干表
工程构造
- xxl-job-admin:能够看作治理各个工作的管理器,相似于微服务中的Nacos(服务注册核心)
- xxl-job-core :公共依赖局部 (临时疏忽)
- xxl-job-executor-samples :该模块下寄存着俩个能够间接运行的模板
xxl-job-executor-sample-frameless:传统的执行程序
xxl-job-executor-sample-springboot:整合了 SpringBoot 的程序(举荐)
接下来咱们以整合了 SpringBoot 的模板中进行操作,次要操作的文件如图所示
如何编写
这里咱们次要解说 Bean 模式的编写,该模式能够通过 @XxlJob(“工作名称”) 将每个自定义办法变成咱们须要执行的工作,有点相似于 MVC 中的 @RequestMapping 将每个办法变成对应前端申请的控制器一样。
@Component
public class SampleXxlJob {
int time = 0; //记录执行次数
//定义一个名为 TaskDemo 的定时工作
@XxlJob("TaskDemo")
public void TaskDemo() throws Exception {
// XxlJobHelper.log 办法能够将办法中的内容输入到前台日志进行查看
System.out.println("TaskDemo 开始执行第" + time + "次"); //控制台输入
XxlJobHelper.log("TaskDemo 开始执行第" + time + "次"); //日志输入
System.out.println("----------------------------------------");
time++;
}
}
进入后盾
- 首先进入到 xxl-job-admin 模块下更改 application.properties 文件中数据库地址的配置内容 (留神这里要链接运行过 tables_xxl_job.sql 文件,或者存在该文件中所创立的表的数据库)
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 接着在后盾启动 xxl-job-admin 模块,在浏览器中输出默认地址 http://localhost:8080/xxl-job-admin/toLogin
用户名 admin (默认)
明码 123456 (默认) - 次要导航性能如图所示 👇
- 在 <运行报表> 中,它会记录配置好的工作个数,不论启动没启动
- 点击 <工作治理>,能够看到有一个默认的工作配置,点击 <新增> 按钮,将咱们本人编写的工作配置进去,具体配置如图所示
特别强调,JobHandle 中填写的是咱们在 @XxlJob 注解中所对应的值,用来确定咱们想要调用的办法, 红色的为必选项,其余的有就填写,没有就默认
其中 Cron 是一种专门设置工夫的表达式,大家感兴趣能够学一学,也能够间接点击依照外面的选项进行抉择,增加后就会多一个定时工作
启动定时工作
- 进入到刚刚咱们编写的 xxl-job-executor-sample-springboot 模块,启动工程。
- 进入到后盾,点击 <操作>,如果点击 <启动一次>,那么编写的办法只会执行一次,且咱们设置的 Cron 工夫条件也会生效,点击 <启动> 则依照咱们配置好的运行
控制台后果如图所示
- 点击 <调度日志> 能够看到工作每执行一次就会生成一个日志记录,点击 <操作> 再点击 <执行日志> 能够看到咱们输出到日志当中的内容,特地要阐明的是,如果咱们的程序出现异常,异样信息将输入到日志当中,并不会返回到控制台。 这个是默认的,咱们并没有进行配置
- 日志内容如图所示📕
这就是一个简略的基于 XXL-JOB 的定时示例,更多具体配置大家能够看官网,文档写的十分分明
我是 Haoo ,编程界的沈腾,撰写乏味的文章。
如果这篇文章帮忙到你,请珍藏⭐点赞👍加关注👀,跟踪不迷路(🌻◡‿◡)
发表回复