Quartz
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。
eg:
jar

entity (Plan)
public class Plan {
//时间
private String date;
//任务
private String task;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTask() {
return task;
}
public void setTask(String task) {
this.task = task;
}
public Plan(String date, String task) {
this.date = date;
this.task = task;
}
public Plan() {
}
}
service (RemindService)
public class RemindService {
public void printMessage(){
List<Plan> list = getPlansForTooday();
for (Plan plan : list) {
System.out.println("计划的时间"+plan.getDate()+plan.getTask());
}
}
private List<Plan> getPlansForTooday() {
List<Plan> list = new ArrayList<Plan>();
Plan plan1 = new Plan("2016年11月3日","月底可以购买回家的车票");
Plan plan2 = new Plan("2016年11月3日","webService");
list.add(plan2);
list.add(plan1);
return list;
}
}
quartz (Remindjob)
public class RemindJob implements Job {
private RemindService service=new RemindService();
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
service.printMessage();
}
public RemindService getService() {
return service;
}
public void setService(RemindService service) {
this.service = service;
}
}
测试类
一分钟后只运行一次
public class MyTest {
public static void tool() throws SchedulerException{
//一 构建job
JobDetail job = JobBuilder.newJob(RemindJob.class)//
.withIdentity("job1","group1")//
.build();
//二 构建Trigger
Date runTime = DateBuilder.evenMinuteDate(new Date());
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")//
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.startAt(runTime)//
.build();//
//三 绑定job和rigger
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.scheduleJob(job,trigger);
sched.start();
}
public static void main(String[] args) throws SchedulerException {
tool();
}
每两秒运行一次
public class MyTest {
public static void tool() throws SchedulerException{
//一 构建job
JobDetail job = JobBuilder.newJob(RemindJob.class)//
.withIdentity("job1","group1")//
.build();
//二 构建Trigger
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")//
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.repeatForever())
.startAt(new Date(System.currentTimeMillis()+2000))
.build();//
//三 绑定job和rigger
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.scheduleJob(job,trigger);
sched.start();
}
public static void main(String[] args) throws SchedulerException {
tool();
}
}
表达式
public static void tools() throws SchedulerException{
//一 构建job
JobDetail job = JobBuilder.newJob(RemindJob.class)//
.withIdentity("job1","group1")//
.build();
//二 构建Trigger
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")//
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 12 * * ?"))
.startAt(new Date()).build();
//三 绑定job和rigger
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.scheduleJob(job,trigger);
sched.start();
}
public static void main(String[] args) throws SchedulerException {
tool();
tools();
}
表达式的特殊字符



Quartz的更多相关文章
- 免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)
很多的软件项目中都会使用到定时任务.定时轮询数据库同步,定时邮件通知等功能..NET Framework具有“内置”定时器功能,通过System.Timers.Timer类.在使用Timer类需要面对 ...
- Spring Quartz实现任务调度
任务调度 在企业级应用中,经常会制定一些"计划任务",即在某个时间点做某件事情 核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作 任务调度涉及多线程并发.线程池维 ...
- topshelf和quartz内部分享
阅读目录: 介绍 基础用法 调试及安装 可选配置 多实例支持及相关资料 quartz.net 上月在公司内部的一次分享,现把PPT及部分交流内容整理成博客. 介绍 topshelf是创建windows ...
- Quartz.net持久化与集群部署开发详解
序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...
- Quartz.net开源作业调度框架使用详解
前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron-like表达式,集群,数据库.功能性能强大更不 ...
- quartz.net 时间表达式----- Cron表达式详解
序言 Cron表达式:就是用简单的xxoo符号按照一定的规则,就能把各种时间维度表达的淋漓尽致,无所不在其中,然后在用来做任务调度(定时服务)的quart.net中所认知执行,可想而知这是多么的天衣无 ...
- Quartz.NET Windows 服务示例
想必大家在项目中处理简单的后台持续任务或者定时触发任务的时候均使用 Thread 或者 Task 来完成,但是项目中的这种需求一旦多了的话就得将任务调度引入进来了,那今天就简单的介绍一下 Quartz ...
- [Quartz笔记]玩转定时调度
简介 Quartz是什么? Quartz是一个特性丰富的.开源的作业调度框架.它可以集成到任何Java应用. 使用它,你可以非常轻松的实现定时任务的调度执行. Quartz的应用场景 场景1:提醒和告 ...
- 关于Quartz.NET作业调度框架的一点小小的封装,实现伪AOP写LOG功能
Quartz.NET是一个非常强大的作业调度框架,适用于各种定时执行的业务处理等,类似于WINDOWS自带的任务计划程序,其中运用Cron表达式来实现各种定时触发条件是我认为最为惊喜的地方. Quar ...
随机推荐
- [高并发]Java高并发编程系列开山篇--线程实现
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发. 引用 多线程比多任务更加有挑战.多线程是在同一个程序内部并行执行,因此会对相 ...
- Laravel Composer and ServiceProvider
Composer and: 创建自定义类库时,按命名空间把文件夹结构组织好 composer.json>autoload>classmap>psr-4 composer dump-a ...
- Matlab 高斯_拉普拉斯滤波器处理医学图像
前言:本程序是我去年实现论文算法时所做.主要功能为标记切割肝脏区域.时间有点久,很多细节已经模糊加上代码做了很多注释,因此在博客中不再详述. NOTE: 程序分几大段功能模块,仔细阅读,对解决医学图像 ...
- 基于Oracle安装Zabbix
软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...
- Android性能优化之巧用软引用与弱引用优化内存使用
前言: 从事Android开发的同学都知道移动设备的内存使用是非常敏感的话题,今天我们来看下如何使用软引用与弱引用来优化内存使用.下面来理解几个概念. 1.StrongReference(强引用) 强 ...
- [OpenGL超级宝典]专栏前言
我小时候的梦想呢,是做宇航员或者科学家或者是做一款属于自己的游戏,后来前面两个梦想都没有实现,于是我就来实现我的第三个梦想了,,,我呢,也算是零基础,因为我的专业是物联网工程,这个专业覆盖面之广,简直 ...
- [C#] 简单的 Helper 封装 -- RandomHelper
using System; namespace Wen.Helpers { /// <summary> /// 随机数助手 /// </summary> public seal ...
- [算法]——快速排序(Quick Sort)
顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...
- 如何使用本地账户"完整"安装 SharePoint Server 2010+解决“New-SPConfigurationDatabase : 无法连接到 SharePoint_Config 的 SQL Server 的数据 库 master。此数据库可能不存在,或当前用户没有连接权限。”
注:目前看到的解决本地账户完整安装SharePoint Server 2010的解决方案如下,但是,有但是的哦: 当我们选择了"完整"模式安装SharePointServer201 ...
- Struts2.5需要的最少jar文件
以Struts2.5.2为例 从官网上下载“struts-2.5.2-min-lib.zip”,里面有7个jar文件: commons-fileupload-1.3.2.jarcommons-io-2 ...