quartz介绍

  在我们的项目中,经常会遇到某个任务需要在特定的时间点执行,这个时间点可能是每天的某分某秒,可能是一周的指定某个星期某个时间等;quartz就是实现这样一个复杂任务调度逻辑的框架。

  官方介绍:http://www.quartz-scheduler.org/

quartz实现

  quartz实现比较简单。

  1. Ijob接口实现

    public interface IJob     {         void Execute(IJobExecutionContext context);     }

  2. 配置调度策略

    

<?xml version="1.0" encoding="UTF-8"?>

<!-- This file contains job definitions in schema version 2.0 format -->

<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">

  <processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives> <schedule>
<job>
<!--任务名称-->
<name>JobTest</name>
<!--任务分组-->
<group>Test</group>
<description>元叹测试quartz</description>
<!--任务命名控件.类名,类名-->
<job-type>QuartzTest.JobTest, QuartzTest</job-type>
<durable>true</durable>
<recover>false</recover>
</job>
<trigger>
<!--简单模式,隔一段时间执行一次,可配执行次数-->
<simple>
<!--调度名称-->
<name>sampleSimpleTrigger</name>
<!--调度分组-->
<group>simplegroup</group>
<!--调度描述-->
<description>Simple trigger to simply fire sample job</description>
<!--作业名称,job节点对应名称-->
<job-name>JobTest</job-name>
<!--作业分组,job节点对应分组-->
<job-group>Test</job-group>
<misfire-instruction>SmartPolicy</misfire-instruction>
<!--重复执行次数,执行次数=此值+1-->
<repeat-count>2</repeat-count>
<!--执行间隔时间,毫秒单位-->
<repeat-interval>2000</repeat-interval>
</simple>
<cron>
<name>TestJobTrigger</name>
<group>Test</group>
<job-name>JobTest</job-name>
<job-group>Test</job-group>
<!--开始调度时间,大于当前时间忽略-->
<start-time>2015-11-26T22:19:00+08:00</start-time>
<!--cron表达式-->
<cron-expression>0/3 * * * * ?</cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>

  3. 动态编程实现调度

        ISchedulerFactory schedf = new StdSchedulerFactory();
IScheduler sched = schedf.GetScheduler(); IJobDetail jobDetail = JobBuilder.Create<JobTest>().Build(); IJobDetail jobDetail2 = JobBuilder.Create<JobTest2>().Build(); ITrigger simpleTrigger = (ISimpleTrigger)TriggerBuilder.Create().WithSimpleSchedule(x => x.WithIntervalInSeconds(2).WithRepeatCount(5)).Build(); ITrigger crontrigger = (ICronTrigger)TriggerBuilder.Create().WithCronSchedule("0/5 * * * * ? ").Build(); sched.ScheduleJob(jobDetail, crontrigger); sched.ScheduleJob(jobDetail2, simpleTrigger); sched.Start();

quartz简单实现的更多相关文章

  1. Java调度框架Quartz简单示例

    Quartz的大名如雷贯耳,这里就不赘述,而且本文也不作为深入探讨,只是看完Quartz的官方文档后,下个简单示例,至少证明曾经花了点时间学习过,以备不时之需. Quartz使用了SLF4J,所以至少 ...

  2. Quartz学习——Quartz简单入门Demo(二)

    要学习Quartz框架,首先大概了解了Quartz的基本知识后,在通过简单的例子入门,一步一个脚印的走下去. 下面介绍Quartz入门的示例,由于Quartz的存储方式分为RAM和JDBC,分别对这两 ...

  3. springmvc+quartz简单实现定时调度

    一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十 ...

  4. Quartz简单案例

    需求需要开发一个每天定时推送消息给微信用户,第一次接触quartz,简单案例 1. 先编辑要执行的任务 测试类代码 package com.wqq.test.quartz; import org.sp ...

  5. Quartz简单实现定时任务管理(SSM+Quartz)

    首先你得有一个用Maven搭好的SSM框架,数据库用的Mysql,这里只有关于Quartz的部分.其实有大神总结的很好了,但做完后总有些地方不一样,所以写这篇作为笔记.这里先把大神的写的分享给大家:h ...

  6. Spring-boot+Spring-batch+hibernate+Quartz简单批量读文件写数据用例

    本文程序集成了Spring-boot.Spring-batch.Spring-data-jpa.hibernate.Quartz.H2等.完整代码在Github上共享,地址https://github ...

  7. quartz 简单定时器

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  8. Quartz简单使用

    官方的Quartz会提供例子的,例子看个前三四个感觉就够用了,主要就是起Timer的作用,但是比timer稳定,而且功能更全. UpdateClientTimer.task(ClearJob.clas ...

  9. 定时执行程序-Quartz简单实例

    1.加jar包:Quartz自己quartz-1.8.3.jar和依赖包commons-logging.jar  .slf4j-log4j12-1.5.10.jar .slf4j-api-1.5.10 ...

随机推荐

  1. 最好的程序员都是行动派(成功者不是那些明知赚钱之法还要推三阻四的人。成功者知道轻重缓急,善于把握今天) good

    我相信,所有程序员都需要在下面两点之间找到一个良好的平衡: 1.把自己关在一间私密的办公室里,针对你的程序与编译器展开一次亲密对话. 2.出入公众场合,与其他人公开谈论你的程序. 关于这个话题,我已经 ...

  2. android studio 偶记

    修改项目名称 如果仅仅改了文件夹的名字,则会出现引用问题,相应的如下文件都要做相应的修改: 1. package name 要做相应调整 2. settings.gradle ,中要修改相应的moda ...

  3. 【CF】3B Lorry

    这道题目网上有几个题解,均有问题.其实就是简单的贪心+排序,没必要做的那么复杂.一旦tot+curv > v时,显然curv==2, 有三种可能:(1)取出最小的curv==1的pp,装入当前的 ...

  4. Centos6.4 mysql安装与配置

    安装命令: yum install mysql #安装客户端 yum install mysql-server #安装服务器 yum install mysql-devel #安装开发库 安装完成后, ...

  5. datax中oracleWriter

    在使用datax的oraclewriter时,由于对oracle的不熟悉,以及c++编译的不熟悉,颇费了一些周折.在此,记录一下,供再次使用的人参考. 1.oracleWriter :oracle提供 ...

  6. 好用的ajax后台框架

    dwz 简单实用的国产jquery Ui框架 http://www.j-ui.com/#_blank

  7. 搜索算法:深度优先搜索(DFS)

    关于深搜的介绍,在网上有很多,不再赘述.主要以题目形式实例讲解. POJ - 1321 (http://poj.org/problem?id=1321) 题目大意:给出一个棋盘,棋子不能同行同列,求放 ...

  8. usaco 安慰奶牛

    Description 约翰有N个牧场,编号依次为1到N.每个牧场里住着一头奶牛.连接这些牧场的有P条 道路,每条道路都是双向的.第j条道路连接的是牧场Sj和Ej,通行需要Lj的时间.两牧场之 间最多 ...

  9. HDU 1159 Common Subsequence 公共子序列 DP 水题重温

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Jav ...

  10. linux文件权限详解

    一.文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一 ...