IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> xxl-job(许雪里开发),分布式任务调度平台+定时任务 -> 正文阅读

[Java知识库]xxl-job(许雪里开发),分布式任务调度平台+定时任务

xxl-Job(分布式任务调度中心(许雪里开发)

面试题:你的项目是分布式的,项目的定时任务是怎么做的?

分布式任务调度如果让你来实现,有什么思路,怎么实现? 有没有了解过一些开源的方案来解决这一块问题?

集中式任务调度的框架Quartz

它是一个单体项目的定时框架,也是我们java开发中常见的定时任务。

什么是定时任务?

是指在指定的时间去执行任务(业务代码)

java实现定时任务的一些方式

  1. while(true)+Thread.sleep(轮询+线程休眠)
  2. ScheduledExecutorService 一个并发工具类,是最理想的定时任务的实现方式。(现在用的比较少)
  3. Quartz
  4. Spring Task Spring提供的轻量级的定时任务工具
  5. SpringBoot 注解 @EnableScheduling+@Scheduled 底层依然采用Spring Task

实现步骤(调度中心+执行器)

调度中心是xxl-job-admin模块,这个模块可以部署到Linux,你的公司的服务器上面。

JobHandler类里面写上你的主要的业务逻辑代码

  1. 写上一个xxxJobHandler类,加上一个@JobHandler(value=“名字”) 注解,这个注解里面的名字和xxl-job-admin管理的任务管理的JobHandler里面的名字是一样的

  2. 继承IJobHandler类

  3. @Override execute()里面写上你的业务逻辑,如果想要操作数据库可以上面@Autowired你的Mapper文件等等

    编辑执行器:配置多个ip地址进行集群操作。

在这里插入图片描述

在这里插入图片描述
路由策略:有轮询(多个ip的话,每个ip分别调度一次的来),故障转移(有一台服务出现故障可以转移到另外一台执行)

Cron:表达式用于写上定时的时间

运行模式:Bean表示是Spring容器托管的模式,其他的模式可以在线敲代码。

阻塞策略:一般使用单机串行,也就是一个任务没有成功。

为了完全起见,调度中心xxl-job-admin也可以实现集群部署。,实现多个调度中心,多个服务。

可以把xxl-job-admin模块的application.properties的端口号修改一下,打成jar包(先在maven里面clean,然后pacakage,然后部署到Linux服务器)

java -jar 你的jar包的名字

集群部署之后可以通过Nginx进行负载均衡,反向代理。
在这里插入图片描述

在这里插入图片描述

  1. 首先会拦截/xxl-job-admin,进行代理到http://xxl-job.admin
  2. 然后 转发到 127.0.0.1:8080
  3. 我们可以在windows的hosts文件中配置127.0.0.1 www…jobs.com的映射。

即使是集群部署,也不会调度任务再次,里面加上了锁

5SpringBoot整合xxl-job

  1. 引入依赖
  2. 配置文件信息,application.yml
  3. 配置XxlJobConfig
  4. 创建handler接口继承IJobHandler,重写里面的execute()方法。

6 xxl-Job的设计思想

  1. 调度中心被抽取成一个公共平台,不承担任何其他的业务逻辑。
  2. 任务抽象成JobHandler,交由执行器管理,负责相关业务逻辑。
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:09:58  更:2022-03-30 18:13:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:49:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码