XXL-JOB框架

版权声明:分享知识是一种快乐,愿你我都能共同成长! https://blog.csdn.net/qidasheng2012/article/details/89157406

一、简介

轻量级分布式任务调度平台:

官网: http://www.xuxueli.com/xxl-job/#/


二、入门篇

官网的文档写的非常详细,可以参考官方文档的步骤进行部署。这里大概的记录下大概的步骤

1、下载源码
在这里插入图片描述

在这里插入图片描述

2、解压并导入idea

在这里插入图片描述

在这里插入图片描述

3、在数据库中生成表

脚本位置:/xxl-job/doc/db/tables_xxl_job.sql

在这里插入图片描述
4、修改 xxl-job-admin 的配置文件

扫描二维码关注公众号,回复: 6191612 查看本文章

将数据库用户名和密码修改为自己的
在这里插入图片描述

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、查看日志和执行日志

猜你喜欢

转载自blog.csdn.net/qidasheng2012/article/details/89157406