1. xxl-job 概述

官方网址:链接

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

2. 代码示例

点击 Download 下载 demo ,并打开工程。
在这里插入图片描述

2.1 创建数据库

工程打开后如下所示,创建数据库,SQL就该工程的 doc 目录下:
在这里插入图片描述
创建好的数据库如下所示,我的MySQL版本为5.7.X。
在这里插入图片描述

2.2 修改XXL-JOB管理应用的配置

修改配置 application.properties:
在这里插入图片描述

修改配置,主要修改 数据库配置,如下三个数据库配置,分别为连接那个数据库,该数据库的用户名、该数据库的密码:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl-job?Unicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=syrdbt。

我的完整配置如下所示:

### 1、调度中心项目的端口号以及访问路径
server.port=8080
server.context-path=/xxl-job-admin

### 2、配置静态文件的前缀
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=classpath:/static/

### 3、配置模板文件
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.##########

### 4、配置mybatis的mapper文件地址
mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml

### 5、配置数据库的地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl-job?Unicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=syrdbt
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

### 6、配置报警邮箱
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


### 7、管理界面的登录用户名密码
xxl.job.login.username=admin
xxl.job.login.password=123456

### 8、调度中心通讯TOKEN,非空时启用
xxl.job.accessToken=

### 9、调度中心国际化设置,默认为中文版本,值设置为“en”时切换为英文版本
xxl.job.i18n=

2.3 新建 Job

新建 jobHandler ,HelloJobHandler:
在这里插入图片描述

job Handler 的源码如下所示:

package com.xxl.job.executor.service.jobhandler;

import org.springframework.stereotype.Component;

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;

import java.util.Date;


/**
 * 任务Handler示例(Bean模式)
 * <p>
 * 开发步骤:
 * 1、继承"IJobHandler":“com.xxl.job.core.handler.IJobHandler”;
 * 2、注册到Spring容器:添加“@Component”注解,被Spring容器扫描为Bean实例;
 * 3、注册到执行器工厂:添加“@JobHandler(value="自定义jobhandler名称")”注解,注解value值对应的是调度中心新建任务的JobHandler属性的值。
 * 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
 */
@JobHandler(value = "helloJobHandler")
@Component
public class HelloJobHandler extends IJobHandler {

    @Override
    public ReturnT<String> execute(String param) {
        String now = new Date().toString();
        System.out.println(now + "XXL-JOB, Hello World.");
        return SUCCESS;
    }

}

2.4 启动XXL-JOB

启动 XxlJobAdminApplication 和 XxlJobExecutorApplication。
在这里插入图片描述
启动成功如下图所示:
在这里插入图片描述

2.5 新建执行器

登陆xxl-job的管理界面。

登陆Url:http://localhost:8080/xxl-job-admin/jobinfo

账号:admin, 密码:123456 。

登陆成功后进入如下界面:
在这里插入图片描述
点击执行器管理,进入执行器管理界面。
在这里插入图片描述
新建一个执行器,可以选择自动注册、也可以手动录入,机器地址为127.0.0.1:9999,执行器信息输入完之后,点击保存即可。
在这里插入图片描述

2.6 创建任务

进入任务管理界面,选择刚才创建的任务调度测试执行器。
在这里插入图片描述
点击新增创建任务,该任务5分钟创建执行一次,cron表达式:0/5 * * * * ?
任务执行即执行前面我们新建的 HelloJobHandler 的 excute 方法。
在这里插入图片描述

3 测试

启动任务。
在这里插入图片描述
HelloJobHandler 的 excute 方法被执行,每5秒一次。
在这里插入图片描述
任务管理的执行日志存储在 xxl_job_log 这个表中。
在这里插入图片描述

参考文献:

GitHub 加速计划 / xx / xxl-job
27.16 K
10.79 K
下载
xxl-job: 是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。
最近提交(Master分支:3 个月前 )
e5d26ba2 - 4 个月前
977ad87b - 4 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐