SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台

一、概述

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

但是我们到底用它来干什么呢?

我们都知道,Quartz是Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制,在《SpringBoot入门建站全系列(十五)内置定时任务及Quartz定时任务使用》 一篇中,已经讲述了Quartz的使用方法。

而XXL-JOB正是基于Quartz,并将Quartz的功能进行封装,作为执行器,使其可以和一个统一的调度中心进行交互,将任务的调度管理交给调度中心处理,任务的执行交给Quartz执行。(XXL-JOB 2.1.0版本之后不再使用Quartz,但是本篇特意找到了使用Quartz的较新版本,2.0.1)。这样,执行任务的每个机器相当于一个个客户端,而调度中心则是各个客户端的总管(调度中心也可以集群化部署,但要公用一个数据库)。

首发地址:

品茗IT: https://www.pomit.cn/p/2412183455255041

如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。

一、数据库的初始化

需要先将xxl-job要求的表建好,地址是:https://gitee.com/xuxueli0323/xxl-job/tree/v2.0.1/doc/db 下的tables_xxl_job.sql文件。

如果不喜欢gitee,github地址是https://github.com/xuxueli/xxl-job;

但是gitee的速度快。

把tables_xxl_job.sql的sql执行下,注意里面的数据库是xxl-job,可以改成自己的数据库。

执行完成后,就出现这些表了:

二、调度中心的安装

找到想要下载的版本的tag,比如我找的是2.0.1:https://gitee.com/xuxueli0323/xxl-job/tree/v2.0.1, 点击下载。

注意,如果直接下载master,就是下载最新版本的xxl-job,可能不是你想要的。

2.0.1版本的xxl-job-admin改为SpringBoot应用了。

解压后,将xxl-job下的xxl-job-admin项目导入到工作台,如图所示:

我们要修改的就是application.properties文件,可以将端口修改下,数据库地址密码等肯定要修改地;邮箱地址也是要修改地;登录用户名等随意。

改完之后,打包,运行jar包。

运行成功后打开: http://127.0.0.1:8080/xxl-job-admin/ 即可。

三、执行器

执行器就是一个运行任务的客户端。需要注册到调度中心去。

本文假设你已经引入spring-boot-starter-web。已经是个SpringBoot项目了,如果不会搭建,可以打开这篇文章看一看《SpringBoot入门建站全系列(一)项目建立》。

首先,在调度中心新建执行器,这个步骤啥时候做其实都可以,如果想让执行器自动注册,需要在执行器启动前在调度中心把执行器新建好。

3.1 调度中心新建执行器

选择自动注册,需要在执行器启动前在调度中心把执行器新建好。手动注册需要手动填入机器和端口列表。

建好后,执行器启动之后,会自动注册进来:

3.2 Maven依赖

需要引入xxl-job-core.

<dependency>

3.3 配置文件

在application.properties 中需要配置数据库相关信息的信息,如:

### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
xxl.job.executor.appname=pomitcn### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9999### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=### 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效;
xxl.job.executor.logretentiondays=-1

3.4 执行器配置

需要配置handler的位置、xxl.job的相关参数等。

package 

3.5 新建Job执行Handler

xxl-job提供了多种任务执行方式:GLUE模式(包含JAVA(groovy)、shell、php、nodejs、python等多种方式)和Bean模式;

一般情况下我们是使用Bean模式来定义任务,因为这个是正常的JAVA开发人员的思维。而GLUE模式,是将代码写在表里,动态执行。

这里,我先讲下怎么使用Bean模式。

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

package 

四、测试任务执行

在调度中心的任务管理--> 新建任务:

建好以后,选择执行器,可以看到当前任务状态是stop:

可以点执行,也可以点启动

执行: 只执行一次 启动: 启动定时任务,安装cron表达式来执行。

我这里点执行之后,任务执行一次,点击日志查看日志记录:

完成!

品茗IT-博客专题:https://www.pomit.cn/lecture.html汇总了Spring专题、Springboot专题、SpringCloud专题、web基础配置专题。

快速构建项目

Spring项目快速开发工具:

一键快速构建Spring项目工具

一键快速构建SpringBoot项目工具

一键快速构建SpringCloud项目工具

一站式Springboot项目生成

Mysql一键生成Mybatis注解Mapper

Spring组件化构建

SpringBoot组件化构建

SpringCloud服务化构建

喜欢这篇文章么,喜欢就加入我们一起讨论Java Web吧!

python建站部署_SpringBoot入门建站全系列(三十二)接入xxl-job分布式任务调度平台...相关推荐

  1. Reflex WMS入门系列三十二:导出到Excel

    Reflex WMS入门系列三十二:导出到Excel 如同SAP系统的风格 --- 凡是有list的界面,都能导出到Excel ---, Reflex WMS系统也提供了类似的功能.几乎在任何的Lis ...

  2. python 霍夫直线变换_OpenCV-Python 霍夫线变换 | 三十二

    目标 在这一章当中, 我们将了解霍夫变换的概念. 我们将看到如何使用它来检测图像中的线条. 我们将看到以下函数:cv.HoughLines(),cv.HoughLinesP() 理论 如果可以用数学形 ...

  3. kafka maven 依赖_SpringBoot入门建站全系列(二十八)整合Kafka做日志监控

    SpringBoot入门建站全系列(二十八)整合Kafka做日志监控 一.概述 Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端 ...

  4. springboot mybatis ehcache_SpringBoot入门建站全系列(十四)集成Redis缓存

    SpringBoot入门建站全系列(十四)集成Redis缓存 一.概述 本地缓存,就是使用应用内使用本地内存将数据暂缓存储,一般数据库的查询如果不怎么改动,可以用本地缓存暂存. 远程缓存,比如redi ...

  5. python任务调度平台 界面_分布式任务调度平台XXL-JOB

    以前带我的人说过,最好的学习就是看官方文档,个人也有4个T的学习视频,但是会发现讲的都是入门,有的也比较浅. 官方文档比较官方,也比较权威,打开xxl-job的官网,写的贼详细,有些人喜欢收博客,不喜 ...

  6. 分布式任务调度平台XXL-JOB安装部署

    分布式任务调度平台XXL-JOB相关教程: 使用教程 分布式任务调度平台XXL-JOB使用教程_foxofwind的博客-CSDN博客分布式任务调度平台XXL-JOB使用教程https://blog. ...

  7. python任务调度平台 界面_分布式任务调度平台XXL-JOB搭建教程

    关于分布式任务调度平台XXL-JOB,其实作者 许雪里在其发布的中文教程中已经介绍的很清楚了,这里我就不做过多的介绍了,关于其搭建教程,本人依照其文档搭建起来基本上也没遇到啥问题,这里通过博客的形式记 ...

  8. 深度学习入门(三十二)卷积神经网络——BN批量归一化

    深度学习入门(三十二)卷积神经网络--BN批量归一化 前言 批量归一化batch normalization 课件 批量归一化 批量归一化层 批量归一化在做什么? 总结 教材 1 训练深层网络 2 批 ...

  9. python 基础系列(十二) — python正则

    python 基础系列(十二) - python正则 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独 ...

最新文章

  1. 汇总同一时间段的数据_数据集干货:一文读懂Mapsidejoin
  2. 物联网趋势下的边缘计算发展解析
  3. Ubuntu网卡地址配置、设置 DNS和主机名
  4. SSM实现大学生综合素质评测系统
  5. OpenGL设置透视投影并渲染旋转的立方体
  6. python中当地时间_R 与 Python 中与时间相关内容的梳理
  7. 在下列计算机应用项目中,属于过程控制应用领域的是,计算机基础试题.ppt
  8. VS2010 C# 4.0新特性一览
  9. 手机浏览器上网谁最快?手机浏览器速度测评
  10. Win10微软应用商店打不开/无响应/闪退/错误/无法加载的解决方法
  11. 支付宝支付原理以及测试接口获取支付url
  12. C语言中格式输出二进制的两种方法
  13. 原生js实现小方块拖拽
  14. TensorFlow2.0学习笔记-3.模型训练
  15. 第8节_数据筛选过滤
  16. sina获取股票代码java
  17. 罗斯蒙特3051工作原理
  18. Fisher线性判别分析Fisher Linear Distrimination
  19. Redis持久化机制——随记2
  20. 浪潮服务器设置断电后自启

热门文章

  1. 8月第一周国内搜索网站 排名顺序基本稳定
  2. CentOS 6.2安装
  3. 使用动画播放文件夹中的图片
  4. nginx 如何显示真实ip
  5. pandas中dataframe的索引使用和转换为array
  6. Got a packet bigger than 'max_allowed_packet' bytes
  7. 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)...
  8. C#报错:创建调试信息文件 ……obj\Debug\model.pdb: 拒绝访问
  9. SQL SERVER怎么去掉重复数据?
  10. 高考 | 满分作文:《我们都是读“书”人》