文章目录
前言
今年接手的项目,有较多的定时任务需要管理,而springboot的@Scheduled在分布式架构下,统一性较难保证,关注到xxl-job任务调度中心,有独立的管理后台界面可以管理所有的执行器以及对应的任务,部署以及接入非常简单,记录一下过程
环境说明
Maven3+
Jdk1.8+
Mysql5.7+
一、xxl-job是什么?
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
二、使用步骤
1.下载源码
xxl-job for gitee(推荐)
xxl-job for github
鉴于国内的网络情况,推荐使用gitee下载,本文使用的是2.3.0版本
2.工程介绍
工程结构如下:
xxl-job-admin:xxljob任务调度中心的管理后台,这是我们主要关注的工程
xxl-job-core:调度中心的一些必要组件,其他项目接入xxl-job时需要引入此包
xxl-job-executor-samples: 里面封装了一些通用的方法,可以理解为是一个接入xxl-job的demo项目
3.xxl-job-admin配置
3.1 初始化数据库
执行上面工程下的doc/db/tables_xxl_job.sql,创建xxl-job库表,结果如下
注意:调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;
如果mysql做主从,调度中心集群节点务必强制走主库
3.2 修改xxl-job-admin配置
任务调度中心的管理后台配置文件位于/xxl-job-admin/src/main/resources/application.properties(下面只列出需要修改的配置,其他默认即可)
### 项目启动后登录页的路径,localhost:port/job-admin
server.servlet.context-path=/job-admin
### xxl-job邮件告警通知配置
spring.mail.host=smtp.qq.com
spring.mail.port=25
### 邮件发送方配置,即告警邮件从哪个邮箱发出
spring.mail.username=1xxxx@qq.com
spring.mail.from=1xxxx@qq.com
### 此处的password不是邮箱密码,是邮箱授权码,详情百度"qq邮箱获取授权码"
spring.mail.password=xxxxxxxxxx
### xxl-job数据库信息,修改为步骤3.1初始化数据库的数据源信息
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=
注意:如果在linux环境下发送邮件报错如下:
org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: STARTTLS is required but host does not support STARTTLS. Failed messages: javax.mail.MessagingException: STARTTLS is required but host does not support STARTTLS
需要将如下两个邮件相关配置设置为false
spring.mail.properties.mail.smtp.starttls.enable=false
spring.mail.properties.mail.smtp.starttls.required=false
3.3 启动xxl-job-admin工程
启动工程,访问localhost:port/job-admin,出现如下界面则表示启动成功,初始账号密码admin/123456
总结
xxl-job-admin的配置部署还是十分简单的,开箱即用
项目接入任务调度中心
项目接入任务调度中心实践https://blog.csdn.net/weixin_46841199/article/details/121236097