前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Echarts和Quartz简介

Echarts和Quartz简介

作者头像
宋先生
发布2019-07-18 11:28:35
8560
发布2019-07-18 11:28:35
举报

一.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坐标
代码语言:javascript
复制
<!-- 定时任务调度 -->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.3</version>
</dependency>
第二步:自定义任务类
代码语言:javascript
复制
/**
 * 我的定时器
 * @author Mr.song
 * @date 2019/05/22 15:15
 */
public class MyQuartz {
    public void doSomething(){
        System.out.println("我的定时器执行了");
    }
}
第三步:整合Spring(编写配置文件)
applicationContext-quartz.xml
代码语言:javascript
复制
<?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.无需配置,直接定义定时器加入注解即可
代码语言:javascript
复制
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秒执行一次定时器!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 顶哥说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.Echarts
  • 二.Quartz
    • 1.简单入门
      • 第一步:导入Maven坐标
      • 第二步:自定义任务类
      • 第三步:整合Spring(编写配置文件)
      • 第四步:服务启动后,定时器每隔5秒执行一次
    • 2.Cron表达式
      • 3.基于注解的Quartz
        • 1.无需配置,直接定义定时器加入注解即可
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档