Java任务调度框架之分布式调度框架XXL-Job介绍
Java任务调度框架之分布式调度框架XXL-Job介绍及快速入门
调度器使用场景:
Java开发中经常会使用到定时任务:比如每月1号凌晨生成上个月的账单、比如每天凌晨1点对上一天的数据进行对账操作,在比如每天凌晨5点给180天未登陆过的用户发送邮件提醒等等。定时任务在我们开发中也占有很重要的部分。
Java实现定时任务有很多方式:
1.JDK自带的定时器实现,即java.util.TimerTask类
2.使用Quartz定时器来实现
3.使用spring相关的任务调度。自spring 3.0+以后,spring自带的任务调度,主要依靠TaskScheduler接口的十几个实现来来实现的
4.spring结合quartz实现的
5.配合linux的crontabe来实现
等等其他的。
在这里凯哥介绍一个分布式任务调度框架-XXL-Job。作者:许雪里。代码现在已经开源了。
xxl-job介绍:
先来看下目前最新版本v2.1.0的架构图:
再来看看在git上的stars:
再来看下xxl-job的发展:
我们先来看看官方介绍:
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
快速入门
源码下载:
在git上下载源码(因平台限制,凯哥就不贴git地址了),使用到的git命令:git clone。
下载后,将代码导入到idea中。
环境要求:
Maven 3+
jdk1.7+
mysql5.7+
先来看看项目结构:
初始化sql脚本
在/xxl-job/doc/db/tables_xxl_job.sql是sql脚本文件。
sql初始化错误解决
在sql脚本导入的时候,有可能会遇到如下错误:
可以参考如下文章进行修改:
sql脚本执行之后,可以看到有以下6张表了。
任务调度中心的配置
在XXL-Job所有项目中,任务调度中心就是源码中的xxl-job-admin这个工程。我们需要修改这个工程中信息成为自己的。
修改admin配置文件
文件地址:/xxl-job/xxl-job-admin/src/main/resources/xxl-job-admin.properties
1:修改数据库信息
2:如果需要邮件的话可以配置成自己的。其他项根据需求进行修改即可
部署调度中心项目
因为admin项目是spring boot项目,所以,我们直接run:XxlJobAdminApplication即可。文件位置如下图:
启动项目后,在浏览器中输入:127.0.0.1:8080/xxl-job-admin
默认的用户名及密码->用户名:admin 密码:123456
登陆之后,出现如下图的界面:
菜单说明:
运行报表:如上图。是调度器运行情况报表
任务管理:定时任务管理列表
调度日志:运行日志记录
执行器管理:
先配置执行器,然后在任务管理中,新增任务管理,启动任务之后,就可以在调度日志中,查看到运行结果了。
在下一篇中,我们将介绍怎么在spring boot项目中集成xxl-job使用教程。欢迎大家一起学习。
本文来源:凯哥Java(kaigejava)
Java任务调度框架之分布式调度框架XXL-Job介绍的更多相关文章
- 详解应对平台高并发的分布式调度框架TBSchedule
转载: 详解应对平台高并发的分布式调度框架TBSchedule
- 分布式调度框架TBSchedule使用方法
一.TBSchedule简介 TBSchedule是来自淘宝的分布式调度开源框架,基于Zookeeper纯Java实现,其目的是让一种批量任务或者不断变化的任务,能够被动态的分配到多个主机的JVM中的 ...
- RPC框架与分布式服务框架的区别
第一:RPC框架是点对点的通信方式,即服务消费者与服务提供者是点对点通信 第二:分布式服务框架,不近具有RPC框架的特性,同时,还包括以下特性: 1.提供多台服务器提供服务,具有负载均衡策略 2.服务 ...
- 深入理解分布式调度框架TBSchedule及源码分析
简介 由于最近工作比较忙,前前后后花了两个月的时间把TBSchedule的源码翻了个底朝天.关于TBSchedule的使用,网上也有很多参考资料,这里不做过多的阐述.本文着重介绍TBSchedule的 ...
- Java线程池管理及分布式Hadoop调度框架搭建
平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发工程师却在这个上面吃了不少苦头. 怎么做一套简便的线程开发模 ...
- 5个强大的Java分布式缓存框架推荐
在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的 缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了 ...
- Java分布式缓存框架
http://developer.51cto.com/art/201411/457423.htm 在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓 ...
- 5个强大的Java分布式缓存框架
在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了5 ...
- Dubbo阿里Alibaba开源的分布式服务框架
[获奖公布]"我的2016"主题征文活动 程序猿全指南,让[移动开发]更简单! [观点]移动原生App开发和HTML 5开发,你更看好哪个? 博客的神秘功能 D ...
随机推荐
- Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
计算年.月.日需要安装组件包 pip install python-dateutil 当前日期时间 import datetime print datetime.datetime.now() # 20 ...
- JS常用的正则表达式包
结构: Code: /* 用途:检查输入的Email信箱格式是否正确 输入:strEmail:字符串 返回:如果通过验证返回true,否则返回false */ function checkEmail( ...
- [题解] CF622F The Sum of the k-th Powers
CF622F The Sum of the k-th Powers 题意:给\(n\)和\(k\),让你求\(\sum\limits_{i = 1} ^ n i^k \ mod \ 10^9 + 7\ ...
- 一文说透 Spring 循环依赖问题
https://zhuanlan.zhihu.com/p/62382615 循环依赖发生的时机 Bean 实例化主要分为三步,如图: 问题出现在:第一步和第二步的过程中,也就是填充属性 / 方法的过程 ...
- [极客大挑战 2019]BabySQL
0x00 知识点 双写绕过 简单测试一下,发现or在登陆过程被过滤,想到使用oorr试试,结果成了?! 最后多测试一下,发现from union select 这些关键函数都被替换为空 本题直接进行常 ...
- CTF -攻防世界-crypto新手区(1~4)
题目已经提示用base64直接解密就行 base64解密网址 http://tool.oschina.net/encrypt?type=3 题目提示是凯撒密码 http://www.zjslove.c ...
- POJ 1185 状态DP
这个题目是个挺难表示的状态DP,因为不但要考虑上下还要考虑左右,在DP里面就没有什么下了咯,但也至少除了考虑左右还要考虑上 所以先枚举出在同一行满足条件的状态 即 某状态 若 s&(s< ...
- ZOJ 3299 线段树 离散化
本来是个很简单的题目,难住我的主要是这么几点 1.它所有的点都是坐标,不是实际的砖块,1,3指的是1-2 2-3的砖块...后来就是用1 代表1-2 ,2代表2-3.....,这样的话,每次读入的数据 ...
- 吴裕雄--天生自然 PHP开发学习:While 循环
<html> <body> <?php $i=1; while($i<=5) { echo "The number is " . $i . &q ...
- JavaWeb开发中遇到问题汇总
一.基础问题 1.${pageContext.request.contextPath}获取相对路径无效 问题:在jsp中使用${pageContext.request.contextPath}获取相对 ...