SpringBoot部署xxl-job方法详细讲解
1. 简介
xxl-job
是一款分布式定时任务调度平台,支持固定间隔、固定时间以及CRON表达式等多种调度方式,同时也支持多线程、任务追踪、报警监控、在线日志等多种实用功能。而SpringBoot
作为目前流行的开发框架之一,为xxl-job
的部署提供了便利。
本攻略将详细介绍在SpringBoot
应用中如何部署xxl-job
。
2. 步骤
2.1 下载xxl-job-admin和xxl-job-executor
xxl-job-admin
是任务管理平台,提供了任务维护、调度管理等多种操作;xxl-job-executor
是执行器,用于执行任务。
可以在xxl-job官网的下载页面下载到最新的两个版本。
2.2 配置xxl-job-admin
解压下载好的xxl-job-admin
压缩包,将其中的application.properties
配置文件中的内容改为以下内容:
server.port=8080
# datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/xxl-job-admin?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
spring.datasource.username=root
spring.datasource.password=123456
# xxl-job, access token
xxl.job.accessToken=
# xxl-job, mail alarm
xxl.job.alarm.email.host=smtp.qq.com
xxl.job.alarm.email.port=465
xxl.job.alarm.email.ssl=true
xxl.job.alarm.email.username=alarm@qq.com
xxl.job.alarm.email.password=alarm_password
xxl.job.alarm.email.sendNick=XXL-JOB-ALARM
# xxl-job, i18n
xxl.job.i18n=
# xxl-job, executor address
xxl.job.executor.address=http://localhost:8088/xxl-job-executor/
其中,需要根据自身情况修改以下配置项:
* server.port
:xxl-job-admin
服务所监听的端口号;
* spring.datasource
:xxl-job-admin
使用的MySQL数据库连接信息
2.3 部署xxl-job-admin
在xxl-job-admin
文件夹下,执行以下命令启动xxl-job-admin
服务:
java -jar xxl-job-admin-2.2.0.jar
不出意外的话,xxl-job-admin
启动时的命令行输出应该有一个“Started XxlJobAdminApplication in X seconds”的提示。
接着在浏览器中访问http://localhost:8080/xxl-job-admin
即可进入xxl-job-admin
管理平台。
2.4 配置xxl-job-executor
解压下载好的xxl-job-executor
压缩包,将其中的application.properties
配置文件中的内容改为以下内容:
# xxl job, registry configuration
xxl.job.executor.registries[0].address=localhost:2181
xxl.job.executor.registries[0].timeout=60000
# xxl job, executor configuration
xxl.job.executor.appname=xxl-job-executor-sample
xxl.job.executor.title=xxl-job-executor-sample
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
xxl.job.executor.logretentiondays=30
# xxl job, inner communication
xxl.job.executor.ip=
# xxl job, spring ioc
xxl.job.executor.springfile=/config/xxl-job-executor-sample.xml
# xxl job, alarm email
xxl.job.alarm.email.enable=false
xxl.job.alarm.email.address=
# xxl job, accessToken
xxl.job.accessToken=
# xxl job, 开启自动注册
xxl.job.executor.autoRegistry=true
其中,需要根据自身情况修改以下配置项:
* xxl.job.executor.registries
:xxl-job-executor
使用的Zookeeper注册中心的地址;
* xxl.job.executor.appname
:xxl-job-executor
的应用名称;
* xxl.job.executor.logpath
:xxl-job-executor
的日志文件所在路径。
2.5 启动xxl-job-executor
在xxl-job-executor
文件夹下,执行以下命令启动xxl-job-executor
服务:
java -jar xxl-job-executor-2.2.0.jar
这样,xxl-job-admin
和xxl-job-executor
的配置和部署就完成了。
3. 示例
下面是两个示例,演示xxl-job
如何在SpringBoot
应用中应用。
3.1 固定间隔调度
在SpringBoot
应用的pom.xml文件中加入以下依赖:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${latest.version}</version>
</dependency>
定义定时任务类:
@Component
public class DemoJob {
@XxlJob("demoJob")
public void demoJob() throws InterruptedException {
System.out.println(DateUtil.format(new Date(), "HH:mm:ss") + " 开始执行");
Thread.sleep(5000);
System.out.println(DateUtil.format(new Date(), "HH:mm:ss") + " 执行结束");
}
}
这里使用了xxl-job-core
提供的@XxlJob
注解,标识定时任务的任务名称。
在SpringBoot
应用的application.yml
中添加以下配置:
xxl:
job:
admin:
addresses: http://localhost:8080/xxl-job-admin
executor:
appname: demo-job
ip:
port: 9999
其中,addresses
指定了xxl-job
的管理平台地址,appname
指定了xxl-job
执行器的应用名称,port
指定了xxl-job
执行器的服务端口。
最后,启动SpringBoot
应用和xxl-job-executor
服务即可。
3.2 CRON表达式调度
在SpringBoot
应用的pom.xml文件中加入以下依赖:
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${latest.version}</version>
</dependency>
定义定时任务类:
@Component
public class DemoJob {
@XxlJob(value = "demoJob", cron = "0 */1 * * * ?")
public void demoJob() throws InterruptedException {
System.out.println(DateUtil.format(new Date(), "HH:mm:ss") + " 开始执行");
Thread.sleep(5000);
System.out.println(DateUtil.format(new Date(), "HH:mm:ss") + " 执行完成");
}
}
注意,这里的@XxlJob
注解中加入了cron
属性,指定了该定时任务的CRON表达式。
在SpringBoot
应用的application.yml
中添加以下配置:
xxl:
job:
admin:
addresses: http://localhost:8080/xxl-job-admin
executor:
appname: demo-job
ip:
port: 9999
其中,addresses
指定了xxl-job
的管理平台地址,appname
指定了xxl-job
执行器的应用名称,port
指定了xxl-job
执行器的服务端口。
最后,启动SpringBoot
应用和xxl-job-executor
服务即可。
4. 总结
本攻略主要介绍了在SpringBoot
应用中部署xxl-job
的方法,包括安装配置xxl-job-admin
和xxl-job-executor
,并提供了两个示例帮助读者快速入手。
除了上述使用方式,xxl-job
同时也支持其他多种任务调度方式和应用场景,推荐读者在实际项目中更具自身需求进行使用和定制化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot部署xxl-job方法详细讲解 - Python技术站