Echarts和Quartz简介
一.Echarts
ECharts 是由百度前端团队开发的一款开源的基于 js 图形报表组件,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
官网网址:https://echarts.baidu.com/
5分钟上手教程:https://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts
Tips: 下载并引入文件,在官网上找到实例后拷贝到页面上并准备json数据即可了!
二.Quartz
Quartz 是一个完全由 Java 编写的开源任务调度的框架,通过触发器设置作业定时运行规则,控制作业的运行时间。其中 quartz 集群通过故障切换和负载平衡的功能,能给调度器带来高可用性和伸缩性。主要用来执行定时任务,如:定时发送信息、定时生成报表等等。
Quartz 框架的主要特点:
强大的调度功能,例如丰富多样的调度方法,可以满足各种常规和特殊需求; 灵活的应用方式,比如支持任务调度和任务的多种组合,支持数据的多种存储; 支持分布式集群,在被 Terracotta 收购之后,在原来基础上进行了进一步的改造。
1.简单入门
第一步:导入Maven坐标
<!-- 定时任务调度 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.3</version>
</dependency>
第二步:自定义任务类
/**
* 我的定时器
* @author Mr.song
* @date 2019/05/22 15:15
*/
public class MyQuartz {
public void doSomething(){
System.out.println("我的定时器执行了");
}
}
第三步:整合Spring(编写配置文件)
applicationContext-quartz.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--1.将定时任务类交给spring容器-->
<bean id="myQuartz" class="com.itheima.web.task.MyQuartz"></bean>
<!--2.配置jobDetail : 配置定时执行的类和方法-->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myQuartz"></property>
<property name="targetMethod" value="doSomething"></property>
</bean>
<!--3.配置trigger: (触发器)配置时间以及jobDetail关系-->
<bean id="tigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--cron表达式-->
<property name="cronExpression" value="0/5 * * * * ? *"></property>
<property name="jobDetail" ref="jobDetail"></property>
</bean>
<!--4.配置定时任务管理器-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="tigger"></ref>
</list>
</property>
</bean>
</beans>
第四步:服务启动后,定时器每隔5秒执行一次
2.Cron表达式
对于 Quartz,我们使用的时候主要是注重两个方面,一个是定时任务的业务,另一个就是 Cron 表达式。
Quartz Cron 表达式支持到七个域
字符含义:
* : 所有
? : 忽略
, : 某个域上多个值的间隔
/ : 代表递增,如秒域上的: 0/5 表示每5秒
- : 某个域上的范围连接线
L : 只能用到日和周域上; 指某域上允许的最后一个值
W : 代表平日(周一到周五),只能用到日域上:15w(离该月15号最近的一个平日)
# : 只用用于周域: 6#3,意指某月的第三个周五(6=星期五,#3意味着月份中的第三周)
测试用例
"0 0 12 * *?" 每天中午 12 点触发"0 15 10 ? **" 每天上午 10:15 触发"0 15 10 * *?" 每天上午 10:15 触发"0 15 10 * * ?*" 每天上午 10:15 触发"0 15 10 * * ?2005" 2005 年的每天上午 10:15 触发"0 * 14 * *?" 在每天下午 2 点到下午 2:59 期间的每 1 分钟触发
"0 0/5 14 * *?" 在每天下午 2 点到下午 2:55 期间的每 5 分钟触发"0 0/5 14,18 ** ?" 在每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间的每 5 分钟触发"0 0-5 14 * *?" 在每天下午 2 点到下午 2:05 期间的每 1 分钟触发"0 10,44 14 ? 3WED" 每年三月的星期三的下午 2:10 和 2:44 触发"0 15 10 ? *MON-FRI" 周一至周五的上午 10:15 触发"0 15 10 15 *?" 每月 15 日上午 10:15 触发"0 15 10 L *?" 每月最后一日的上午 10:15 触发"0 15 10 ? *6L" 每月的最后一个星期五上午 10:15 触发"0 15 10 ? * 6L2002-2005" 2002 年至 2005 年的每月的最后一个星期五上午 10:15 触发"0 15 10 ? *6#3" 每月的第三个星期五上午 10:15 触发
3.基于注解的Quartz
Tips: 如果导入了Spring-context的坐标,可以不用再单独导入Quartz的坐标
1.无需配置,直接定义定时器加入注解即可
package cn.dintalk.web.task;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* 我的定时器
*
* @author Mr.song
* @date 2019/05/22 15:15
*/
@Component //加入容器
@EnableScheduling //配置定时器
public class MyQuartz {
@Scheduled(cron = "0/5 * * * * *") //配置触发器
public void doSomething(){
System.out.println("我的定时器欢快的执行了");
}
}
应用启动,每隔5秒执行一次定时器!
- 试试Linux下的ip命令
- hdu---(2604)Queuing(矩阵快速幂)
- centos7下卸载python后yum不能使用的恢复方法
- hdu---(5038)Grade(胡搞)
- shell生成随机字符的几种方法
- Python时间获取及转换
- spark streaming知识总结[优化]
- 让你真正明白spark streaming
- Centos7 firewalld防火墙基本操作
- Spark Sql系统入门4:spark应用程序中使用spark sql
- Flume+Kafka收集Docker容器内分布式日志应用实践
- CentOS7搭建ELK日志集中分析平台
- Centos安装sshfs实现挂载目录
- shell脚本监控磁盘使用率
- HTML 教程
- HTML 简介
- html div 标签介绍
- html span 标签介绍
- html a 超链接标签
- HTML Br换行标签介绍
- HTML P段落标签介绍
- HTML br与p标签区别
- Html H 标题标签
- html px em pt长度单位
- HTML form 标签
- HTML radio 单选框
- HTML B 加粗标签
- HTML strong加粗粗体标签
- HTML em 强调标签
- HTML i 斜体标签
- HTML u下划线标签
- HTML s 删除线标签
- Html img 图片标签
- Html上标注sup与下标注sub标签
- HTML nobr 禁止换行标签
- HTML hr 水平线标签
- HTML label 标签
- HTML input 标签
- HTML textarea 标签
- HTML select下拉列表标签
- HTML checkbox 多选框
- HTML font color 标签
- HTML iframe 框架标签
- HTML Table 表格
- HTML dl dt dd 标签
- HTML ol li有序列表标签
- HTML ul li 无序列表标签
- HTML 注释
- CSS 教程
- CSS 简介
- CSS 语法
- CSS Id 和 Class选择器
- CSS 样式的创建
- CSS background 背景介绍
- CSS 文本样式
- CSS font 字体
- CSS A 链接
- CSS ul ol列表样式
- CSS TABLE 样式
- CSS 框模型
- CSS border 边框
- CSS Outlines 轮廓
- CSS 外边距 Margin
- CSS Padding 内边距
- CSS 分组和嵌套选择器
- CSS 尺寸 (Dimension)
- CSS Display 属性
- CSS Position 定位
- CSS Float 浮动
- CSS 水平对齐(Horizontal Align)
- CSS 组合选择符
- CSS 伪类
- CSS 伪元素
- CSS 导航栏
- CSS 下拉菜单
- CSS 图片廊
- CSS 图像透明/不透明
- CSS sprite 图像拼合技术
- CSS 媒体类型
- CSS 属性选择器
- CSS 实例
- 用Bi-GRU语义解析,实现中文人物关系分析
- 控制梦境
- 引号吃掉了我的数据~~~
- 每日一题 | 召唤兽问题
- WMI ——重写版
- LeetCode009|只出现一次的数字
- 丢弃掉那些 BeanUtils 工具类吧,MapStruct 是真香!!!
- 还在「黑盒炼丹」? 教你如何实现一行代码透视炼丹过程
- SpringCloud Alibaba微服务实战十九 - 集成RBAC授权
- 混合算法(GA+TS)求解作业车间调度问题(JSP)-禁忌搜索部分
- 打卡群刷题总结0810——从前序与中序遍历序列构造二叉树
- JavaScript性能优化
- Python+Excel+Word一秒制作百份合同
- SQL 订单揽收统计
- LeetCode11|搜索二维矩阵