一.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秒执行一次定时器!

Echarts和Quartz简介的更多相关文章

  1. Quartz简介 用 Quartz 进行作业调度

    http://www.ibm.com/developerworks/cn/java/j-quartz/现代的 Web 应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地发展. ...

  2. quartz简介

  3. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十七节--Quartz与ABP框架Abp.Quartz及扩展

    ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate- ...

  4. spring boot1.0 集成quartz 动态配置定时任务

    转载自 https://www.imooc.com/article/36278 一.Quartz简介了解 Quartz Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应 ...

  5. Quartz入门及简单实现

    Quartz简介 Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统.Quartz可以用来创建执行数十,数百乃至数万个作业的 ...

  6. spring quartz 配置

    quartz简介 各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务.任务调度本身涉及到多线程 ...

  7. Quartz使用及注意事项

    Quartz使用及注意事项 前提:目前由于公司业务决定,大量使用Quartz,每天固定的时间点执行相应的业务逻辑,,几十个时间点应该是有的,某一个时间点如果没有执行带来的问题是巨大的.Quartz的稳 ...

  8. Quartz.NET 作业调度

    Quartz 简介: Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调 ...

  9. Quartz定时调度jar包的执行Demo分享

    1.Quartz简介 ​ Quartz框架的核心是调度器.调度器负责管理Quartz应用运行时环境.调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件.Quartz不仅仅是线程和线程管理. ...

随机推荐

  1. c++ stl 使用汇总(string,vector,map,set)

    1.string 1>substr(),截取字串的方法.返回一个从指定位置开始,并具有指定长度的子字符串.参数 start(必选),所需的子字符串的起始位置.字符串中第一个字符的索引为 0.le ...

  2. 【SQL Server 学习系列】-- 随机生成日期时间的SQL脚本

    DECLARE @dt1 DATETIME,@dt2 DATETIME,@a BIGINT,@b BIGINT SET @dt1='2010-01-01'--开始日期 SET @dt2='2010-0 ...

  3. 条款十: 如果写了operator new就要同时写operator delete

    为什么有必要写自己的operator new和operator delete? 答案通常是:为了效率.缺省的operator new和operator delete具有非常好的通用性,它的这种灵活性也 ...

  4. samba服務器下文件夾chmod權限技巧

    需要的效果: samba下文件夹(abc)不可以被重命名.不可以被刪除,其所有子目录可读可写. 如何做到: chmod 777 -R abc   # -R 使得abc下所有数据继承可读可写权限 chm ...

  5. AutoCAD如何倒角 倒圆角 倒直角

    倒圆角:输f 再输r 再输入你想倒的半径,然后选相邻的两边倒直角:输chamfer 再输d 再输你想倒的距离,然后先相邻的两边 祝你成功

  6. mbed试玩—高速开发MCU应用(基于FRDM-KL25Z)

    mbed试玩 曾经參加一个站点的小小的比赛获得了一块Freescale的FRDM-KL25Z开发板.今天拿出来试玩的时候,插入电脑(板子连接OpenSDA接口)识别出一个128MB的虚拟磁盘,然后打开 ...

  7. prototype与几个循环的心得

    <一>prototypeprototype其实是函数的一个属性,并且只有函数有这个属性,这个属性就是给函数增加函数或者属性的,比如写一个function one(){},那么one.pro ...

  8. Vijos P1023Victoria的舞会3【贪心+DFS求强联通分量】

    链接:Click Me! P1023Victoria的舞会3 Accepted 标签:Victoria的舞会[显示标签] 描写叙述 Victoria是一位颇有成就的艺术家,他因油画作品<我爱北京 ...

  9. YTU 2641: 填空题:静态成员---计算学生个数

    2641: 填空题:静态成员---计算学生个数 时间限制: 1 Sec  内存限制: 128 MB 提交: 267  解决: 206 题目描述 学生类声明已经给出,在主程序中根据输入信息输出实际建立的 ...

  10. iOS开发个人开发账号的证书详细使用及介绍

    本人也和大家一样在学习iOS的开发,在开发当中最烦的就是证书出问题,主要是没有理解透证书的含义,因此查阅了一些资料,才对证书有了一定的认识,本文章就是介绍个人的个人理解,有不对的地方大加可以留言提醒, ...