SpringCloud集成XXL-JOB定时任务

项目场景:

XXL-JOB是一个分布式任务调度平台,它能够帮助开发者轻松地实现任务的定时执行、任务调度和任务管理


接入步骤

下载XXL-JOB压缩包

链接: xxl-job
在这里插入图片描述

XXL-JOB做为子模块

  1. 将压缩包解压,项目二级新建目录xxl-job,放入目录中。例:
  • my-msdf-cloud
    • my-gateway
    • my-auth
    • my-system
    • xxl-job
  1. 将xxl-job-executor-samples文件夹中的XxlJobConfig配置类,拷贝到xxl-job-core中。然后将文件夹xxl-job-executor-samples删除即可,里面是范例DEMO代码。
  2. 在根目录的pom.xml文件中,将xxl-job模块设置为子模块。
	<modules>
        <module>...</module>
        <module>...</module>
        <module>xxl-job</module>
    </modules>
  1. 在xxl-job文件夹中找到/doc/db,在数据库中执行文件tables_xxl_job.sql。
  2. 修改xxl-job-admin下的配置文件,主要将端口号更改防止冲突,还有将数据库连接信息更改,accessToken设置为空
server.port=9090
server.servlet.context-path=/xxl-job-admin
### 新增的信息,用于后续注册nacos 
spring.application.name=xxl-job-admin
......
......
### xxl-job, datasource
spring.datasource.url=jdbc:mysql://xxx: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, access token 
xxl.job.accessToken=
  1. 在xxl-job-admin中引入Nacos服务注册的依赖和自定义的公共配置
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
		</dependency>
		
		<dependency>
			<groupId>com.my</groupId>
			<artifactId>my-common-config</artifactId>
		</dependency>

公共配置里面是Nacos的相关信息,如没有公共配置的文件,可以直接在xxl-job-admin的配置文件里面写入以下内容

spring.cloud.nacos.discovery.server-addr=xxx:8848
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos

spring.cloud.nacos.config.server-addr=xxx:8848
spring.cloud.nacos.config.username=nacos
spring.cloud.nacos.config.password=nacos
spring.cloud.nacos.config.file-extension=yml
spring.cloud.nacos.config.shared-dataids=common.yml
  1. 启动运行xxl-job-admin的启动类,可以发现启动成功,并且注册到了Nacos。
    xxl-job地址:http://localhost:9090/xxl-job-admin/
    在这里插入图片描述

使用

  1. 在需要使用的微服务引入依赖
		<dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
        </dependency>
  1. 配置文件新增xxl-job信息
xxl:
  job:
    admin:
      addresses: http://localhost:9090/xxl-job-admin/
    executor:
    #不同的微服务执行器端口设置为不同
      port: 9092
    #分别配置执行器的名称、ip地址、端口号
    #注意:如果配置多个执行器时,防止端口冲突
      appname: my-system
      address: 
      ip:
      #执行器运行日志文件存储的磁盘位置,需要对该路径拥有读写权限
      logpath: /logs/xxl-job/jobhandler
      #执行器Log文件定期清理功能,指定日志保存天数,日志文件过期自动删除。限制至少保持3天,否则功能不生效;
      #-1表示永不删除
      logretentiondays: 200
    accessToken: 
  1. 新建配置文件
import com.xxl.job.core.config.XxlJobConfig;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyXxlJobConfig extends XxlJobConfig {

}
  1. 在XXL-JOB新建对应执行器
    在这里插入图片描述
  2. 任务管理新建一个任务,然后在代码中新建一个类,testtest对应JobHandler里面的值
@Component(value = "testJobHandler")
public class testJobHandler {
    @XxlJob(value = "testest")
    public ReturnT<String> testest(String param) {
        try {
            XxlJobHelper.log("执行成功");
        } catch (Exception e) {
            XxlJobHelper.log("执行失败:"+e.getMessage());
        }
        return ReturnT.SUCCESS;
    }
}

引入的依赖版本均在父pom中进行版本配置,未配置需要加version

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值