quartz简单实现
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简单实现的更多相关文章
- Java调度框架Quartz简单示例
Quartz的大名如雷贯耳,这里就不赘述,而且本文也不作为深入探讨,只是看完Quartz的官方文档后,下个简单示例,至少证明曾经花了点时间学习过,以备不时之需. Quartz使用了SLF4J,所以至少 ...
- Quartz学习——Quartz简单入门Demo(二)
要学习Quartz框架,首先大概了解了Quartz的基本知识后,在通过简单的例子入门,一步一个脚印的走下去. 下面介绍Quartz入门的示例,由于Quartz的存储方式分为RAM和JDBC,分别对这两 ...
- springmvc+quartz简单实现定时调度
一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十 ...
- Quartz简单案例
需求需要开发一个每天定时推送消息给微信用户,第一次接触quartz,简单案例 1. 先编辑要执行的任务 测试类代码 package com.wqq.test.quartz; import org.sp ...
- Quartz简单实现定时任务管理(SSM+Quartz)
首先你得有一个用Maven搭好的SSM框架,数据库用的Mysql,这里只有关于Quartz的部分.其实有大神总结的很好了,但做完后总有些地方不一样,所以写这篇作为笔记.这里先把大神的写的分享给大家:h ...
- Spring-boot+Spring-batch+hibernate+Quartz简单批量读文件写数据用例
本文程序集成了Spring-boot.Spring-batch.Spring-data-jpa.hibernate.Quartz.H2等.完整代码在Github上共享,地址https://github ...
- quartz 简单定时器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- Quartz简单使用
官方的Quartz会提供例子的,例子看个前三四个感觉就够用了,主要就是起Timer的作用,但是比timer稳定,而且功能更全. UpdateClientTimer.task(ClearJob.clas ...
- 定时执行程序-Quartz简单实例
1.加jar包:Quartz自己quartz-1.8.3.jar和依赖包commons-logging.jar .slf4j-log4j12-1.5.10.jar .slf4j-api-1.5.10 ...
随机推荐
- C++ Socket TCP "Hello World!"
这是C++ SOCKET网络程序中的C/S结构之TCP "Hello World !",共两个控制台工程: //////////////////////////////////// ...
- 约瑟夫环的java实现
转自:http://www.cnblogs.com/timeng/p/3335162.html 约瑟夫环:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到 ...
- 动态规划(DP计数):HDU 5121 Just A Mistake
As we all know, Matt is an outstanding contestant in ACM-ICPC. Graph problems are his favorite.Once, ...
- 通过修改 Apache 的配置文件 htaccess 文件实现自定义404页面
最近在学习使用Apache服务器的配置,做一个记录. Apache下有个.htaccess文件,是Apache的一个特殊的配置文件.这个配置文件默认是没有的,要手动在各自的项目的根目录编写才行. 要实 ...
- QT5.1在Windows下 出现QApplication: No such file or directory 问题的解决办法
QT5.0.1在Windows下 出现QApplication: No such file or directory 问题的解决办法 分类: 编程语言学习 软件使用 QT编程学习2013-03-07 ...
- HTML5与CSS3权威指南.pdf5
第9章 通信API 跨文档消息传输 HTML5提供了网页文档之间互相接收与发送信息的功能,不仅同源(域+端口号)的Web网页之间可以互相通信,甚至可以实现跨域通信 想要接受从其他窗口发过来的信息,要对 ...
- patch与diff的恩怨
一.概述 diff和patch是一对相辅相成的工具,在数学上来说,diff类似于对两个集合的差运算,patch类似于对两个集合的和运算.diff比较两个文件或文件集合的差异,并记录下来,生成一个dif ...
- 4 weekend110的textinputformat对切片规划的源码分析 + 倒排索引的mr实现 + 多个job在同一个main方法中提交
好的,现在,来weekend110的textinputformat对切片规划的源码分析, Inputformat默认是textinputformat,一通百通. 这就是今天,weekend110的te ...
- Caffe 编译
Compilation Now that you have the prerequisites, edit your Makefile.config to change the paths for y ...
- Shell until循环
until 循环执行一系列命令直至条件为 true 时停止.until 循环与 while 循环在处理方式上刚好相反.一般while循环优于until循环,但在某些时候,也只是极少数情况下,until ...