一、简介
轻量级分布式任务调度平台:
官网: http://www.xuxueli.com/xxl-job/#/
二、入门篇
官网的文档写的非常详细,可以参考官方文档的步骤进行部署。这里大概的记录下大概的步骤
1、下载源码
2、解压并导入idea
3、在数据库中生成表
脚本位置:/xxl-job/doc/db/tables_xxl_job.sql
4、修改 xxl-job-admin 的配置文件
将数据库用户名和密码修改为自己的
5、启动 xxl-job-admin 项目
因为admin项目是springBoot项目,所以直接启动启动类
访问地址:http://localhost:8080/xxl-job-admin
进入登录页面,不用管直接点击“登录”按钮,进入管理首页
6、配置部署“执行器”项目
xxl提供多种“执行器”项目,因为小编是Java开发,所以常用的是spring和springboot,springboot官网已给出步骤,这里以spring为例
打开配置文件,确认地址是否正确
部署到Tomcat中并修改访问端口和路径
启动Tomcat,查看管理页面
OK,已经连接上了
编辑任务描述、执行时间、任务名称
点击“启动”
查看调用日志
OK,都成功了
三、使用篇
依葫芦画瓢,把框架加入到自己的项目中来,废话不多说开干,本文以spring项目为例
1、在pom.xml中添加依赖
<!-- xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.0.1</version>
</dependency>
2、把配置文件copy到自己的项目
在applicationcontext.xml中导入
修改xml,在applicationcontext.xml中加载properties配置
<context:property-placeholder location="classpath:properties/*.properties,classpath:xxl-job-executor.properties"/>
修改applicationcontext-xxl-job.xml:
1)去掉了加载配置文件(因为已经放到上面的文件中加载了)
2)修改扫描包路径
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- ********************************* 基础配置 ********************************* -->
<!-- 配置01、JobHandler 扫描路径 -->
<context:component-scan base-package="com.manage.jobhandler" />
<!-- 配置02、执行器 -->
<bean id="xxlJobSpringExecutor" class="com.xxl.job.core.executor.impl.XxlJobSpringExecutor" init-method="start" destroy-method="destroy" >
<!-- 执行器注册中心地址[选填],为空则关闭自动注册 -->
<property name="adminAddresses" value="${xxl.job.admin.addresses}" />
<!-- 执行器AppName[选填],为空则关闭自动注册 -->
<property name="appName" value="${xxl.job.executor.appname}" />
<!-- 执行器IP[选填],为空则自动获取 -->
<property name="ip" value="${xxl.job.executor.ip}" />
<!-- 执行器端口号[选填],小于等于0则自动获取 -->
<property name="port" value="${xxl.job.executor.port}" />
<!-- 访问令牌[选填],非空则进行匹配校验 -->
<property name="accessToken" value="${xxl.job.accessToken}" />
<!-- 执行器日志路径[选填],为空则使用默认路径 -->
<property name="logPath" value="${xxl.job.executor.logpath}" />
<!-- 日志保存天数[选填],值大于3时生效 -->
<property name="logRetentionDays" value="${xxl.job.executor.logretentiondays}" />
</bean>
</beans>
修改xxl-job-executor.properties
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### xxl-job executor address 根据自己的情况配置appname、ip和port
xxl.job.executor.appname=ssmDemo
xxl.job.executor.ip=192.168.52.1
xxl.job.executor.port=9998
### xxl-job, access token
xxl.job.accessToken=
### xxl-job log path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job log retention days
xxl.job.executor.logretentiondays=-1
3、添加jobhandler
package com.manage.jobhandler;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger;
import org.springframework.stereotype.Component;
/**
* 任务Handler示例(Bean模式)
*
* 开发步骤:
* 1、继承"IJobHandler":“com.xxl.job.core.handler.IJobHandler”;
* 2、注册到Spring容器:添加“@Component”注解,被Spring容器扫描为Bean实例;
* 3、注册到执行器工厂:添加“@JobHandler(value="自定义jobhandler名称")”注解,注解value值对应的是调度中心新建任务的JobHandler属性的值。
* 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
*
* @author xuxueli 2015-12-19 19:43:36
*/
@JobHandler(value="myDemoJobHandler")
@Component
public class MyDemoJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
XxlJobLogger.log("myDemo");
// 这里写自己的业务逻辑
return SUCCESS;
}
}
部署到Tomcat并启动,然后进管理页面
4、在管理页面中新增执行器
勾选手动录入,机器地址是在xxl-job-executor.properties中配置的IP+port
5、在“任务管理”中添加任务
根据自己的实际情况填写
6、启动任务
7、查看日志
OK,执行成功
8、查看执行日志
自己在定时任务中打的日志也显示出来了,一切大功告成
四、小结
XXL-JOB是一个轻量级分布式任务调度框架,可以监控、管理定时任务,还可以进行预警
spring项目加入框架步骤小结:
1、添加maven依赖
2、添加配置文件
3、添加jobhandler
4、在管理页面中添加执行器和任务
5、启动任务
6、查看日志和执行日志