SpringBoot xxl-job 任务调度
一、xxl-job简介
抄一段
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
maven依赖
<!-- xxl-job-core --> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>${project.parent.version}</version> </dependency>
原文档链接xxl-job使用文档
二、搭建任务调度中心平台
1、github上下载xxl-job项目源代码下载地址
2、运行sql脚本文件创建项目库表
3、修改调度中心application.properties部分设置,不改也行,注意数据库用户名密码
### web #调度中心平台端口 server.port=8989 #名称 server.context-path=/xxl-job-admin ### resources spring.mvc.static-path-pattern=/static/** spring.resources.static-locations=classpath:/static/ ### freemarker spring.freemarker.templateLoaderPath=classpath:/templates/ spring.freemarker.suffix=.ftl spring.freemarker.charset=UTF-8 spring.freemarker.request-context-attribute=request spring.freemarker.settings.number_format=0.########## ### mybatis mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml ### xxl-job, datasource spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource spring.datasource.tomcat.max-wait=10000 spring.datasource.tomcat.max-active=30 spring.datasource.tomcat.test-on-borrow=true spring.datasource.tomcat.validation-query=SELECT 1 spring.datasource.tomcat.validation-interval=30000 ### xxl-job email spring.mail.host=smtp.qq.com spring.mail.port=25 spring.mail.username=xxx@qq.com spring.mail.password=xxx spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory ### xxl-job, access token xxl.job.accessToken= ### xxl-job, i18n (default empty as chinese, "en" as english) xxl.job.i18n=
4、执行入口类启动项目
5、浏览器访问项目
默认账户 admin 密码 123456
登录
在此界面可以看到任务数量和执行器数量
任务: 相当于
@Component //或者@WebListener public class BrithdayListener implements ServletContextListener { @Autowired private MailService mailService; @Override public void contextInitialized(ServletContextEvent sce) { Timer timer = new Timer(); // 定时器任务 延时时间 间隔时间 timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { // 可以查询数据库看今天谁生日 设置一天查一次 遍历集合 循环发送邮件给他们 mailService.send("1947065958@qq.com","生日祝福","测试,生日快乐啊"); } },100000,300000); } }
Timer中的 new TimerTask()
执行器: 我们的任务所在的项目
三、执行器
1、github上下载的源代码中包含各种执行器实例项目
本人使用springboot版
由于我更改了调度中心项目的端口
此处应该写上调度中心的访问路径
xxl.job.executor.appname 为执行器的名称
调度任务: 继承IJobHandler接口,实现execute方法:
这在示例项目中写的一清二楚
2、启动示例项目
执行示例项目入口类
正常启动即可
四、调度中心管理执行器、调度任务
1、进入调度中心平台新增执行器
AppName 示例项目名称
注册方式 手动自动都行 手动需要自己去输入执行器项目访问路径
分布式项目下可以将模块集群的路径加入进来采用轮询方式调度执行器
保存即可
2、新增任务
任务管理界面 新增任务
cron表达式来指定执行时间 这里设置每小时执行一次 保存
点击启动 启动任务 每小时自动调度一次
点击执行 立即执行任务 查看调度日志 成功
查看执行日志
excute方法被执行
到此xxl-job搭建就成功了,使用很简单方便
五、展望
个人觉得xxl-job使用非常方便,平台搭建也十分简单,跟着文档轻松上手。想写一个job只需要继承IJobHandler 实现excute方法即可,调度中心可视化操作非常方便。发邮件只需将之前写的发送邮件代码在excute方法中调用即可,至于在什么场景下发送视业务需求来写即可。可以将相同的模块代码部署在不同的服务器上,只需向调度中心注册服务器地址。
- 点赞
- 收藏
- 分享
- 文章举报
- Spring boot下,集成任务调度中心(XXL-JOB)
- 基于nginx+xxl-job+springboot高可用分布式任务调度系统实战(集群版)
- elastic-job+zookeeper实现分布式定时任务调度的使用(springboot版本)
- Spring boot 集成Quartz,实现Job注入bean, 达到多任务调度控制
- SpringBoot整合Quartz定时任务 系统job Spring Boot教程 调度任务
- Spring Boot 的任务调度模块
- 接入-分布式任务调度平台XXL-JOB
- Spring Boot任务调度简单入门
- 分布式任务调度平台XXL-JOB
- SpringBoot下的Job定时任务
- 纸上得来终觉浅,绝知此事要躬行——Spring boot任务调度
- Spring Boot Quartz 分布式集群任务调度实现
- 任务调度平台XXL-JOB使用
- 纸上得来终觉浅,绝知此事要躬行——Spring boot任务调度
- Quartz Job & Spring 动态任务调度
- spring boot 中配置定时任务job
- 分布式任务调度系统xxl-job搭建
- Spring boot的定时任务调度
- 分布式任务调度平台XXL-JOB
- 10-Spring Boot ( 定时任务调度 )