注:这里使用的是Quartz1.6.5版本号(包:quartz-1.6.5.jar)

//測试main函数
//QuartzTest.java
package quartzPackage;

import java.text.SimpleDateFormat;
import java.util.Date;

public class QuartzTest {

/** *//**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SimpleDateFormat DateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date d = new Date();
String returnstr = DateFormat.format(d);

TestJob job = new TestJob();
String job_name ="11";
try {
System.out.println(returnstr+ "【系统启动】");
QuartzManager.addJob(job_name,job,"0/2 * * * * ?"); //每2秒钟运行一次

// Thread.sleep(10000);
// System.out.println("【改动时间】");
// QuartzManager.modifyJobTime(job_name,"0/10 * * * * ?");
// Thread.sleep(20000);
// System.out.println("【移除定时】");
// QuartzManager.removeJob(job_name);
// Thread.sleep(10000);
//
// System.out.println("/n【加入定时任务】");
// QuartzManager.addJob(job_name,job,"0/5 * * * * ?");

} catch (Exception e) {
e.printStackTrace();
}
}
}

简单的任务管理类
//简单的任务管理类
//QuartzManager.java

package quartzPackage;

import java.text.ParseException;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;

/** *//**
* @Title:Quartz管理类
*
* @Description:
*
* @Copyright:
* @author zz 2008-10-8 14:19:01
* @version 1.00.000
*
*/
public class QuartzManager {
private static SchedulerFactory sf = new StdSchedulerFactory();
private static String JOB_GROUP_NAME = "group1";
private static String TRIGGER_GROUP_NAME = "trigger1";

/** *//**
* 加入一个定时任务,使用默认的任务组名,触发器名,触发器组名
* @param jobName 任务名
* @param job 任务
* @param time 时间设置,參考quartz说明文档
* @throws SchedulerException
* @throws ParseException
*/
public static void addJob(String jobName,Job job,String time)
throws SchedulerException, ParseException{
Scheduler sched = sf.getScheduler();
JobDetail jobDetail = new JobDetail(jobName, JOB_GROUP_NAME, job.getClass());//任务名,任务组,任务运行类
//触发器
CronTrigger trigger =
new CronTrigger(jobName, TRIGGER_GROUP_NAME);//触发器名,触发器组
trigger.setCronExpression(time);//触发器时间设定
sched.scheduleJob(jobDetail,trigger);
//启动
if(!sched.isShutdown())
sched.start();
}

/** *//**
* 加入一个定时任务
* @param jobName 任务名
* @param jobGroupName 任务组名
* @param triggerName 触发器名
* @param triggerGroupName 触发器组名
* @param job 任务
* @param time 时间设置,參考quartz说明文档
* @throws SchedulerException
* @throws ParseException
*/
public static void addJob(String jobName,String jobGroupName,
String triggerName,String triggerGroupName,
Job job,String time)
throws SchedulerException, ParseException{
Scheduler sched = sf.getScheduler();
JobDetail jobDetail = new JobDetail(jobName, jobGroupName, job.getClass());//任务名,任务组,任务运行类
//触发器
CronTrigger trigger =
new CronTrigger(triggerName, triggerGroupName);//触发器名,触发器组
trigger.setCronExpression(time);//触发器时间设定
sched.scheduleJob(jobDetail,trigger);
if(!sched.isShutdown())
sched.start();
}

/** *//**
* 改动一个任务的触发时间(使用默认的任务组名,触发器名,触发器组名)
* @param jobName
* @param time
* @throws SchedulerException
* @throws ParseException
*/
public static void modifyJobTime(String jobName,String time)
throws SchedulerException, ParseException{
Scheduler sched = sf.getScheduler();
Trigger trigger = sched.getTrigger(jobName,TRIGGER_GROUP_NAME);
if(trigger != null){
CronTrigger ct = (CronTrigger)trigger;
ct.setCronExpression(time);
sched.resumeTrigger(jobName,TRIGGER_GROUP_NAME);
}
}

/** *//**
* 改动一个任务的触发时间
* @param triggerName
* @param triggerGroupName
* @param time
* @throws SchedulerException
* @throws ParseException
*/
public static void modifyJobTime(String triggerName,String triggerGroupName,
String time)
throws SchedulerException, ParseException{
Scheduler sched = sf.getScheduler();
Trigger trigger = sched.getTrigger(triggerName,triggerGroupName);
if(trigger != null){
CronTrigger ct = (CronTrigger)trigger;
//改动时间
ct.setCronExpression(time);
//重新启动触发器
sched.resumeTrigger(triggerName,triggerGroupName);
}
}

/** *//**
* 移除一个任务(使用默认的任务组名,触发器名,触发器组名)
* @param jobName
* @throws SchedulerException
*/
public static void removeJob(String jobName)
throws SchedulerException{
Scheduler sched = sf.getScheduler();
sched.pauseTrigger(jobName,TRIGGER_GROUP_NAME);//停止触发器
sched.unscheduleJob(jobName,TRIGGER_GROUP_NAME);//移除触发器
sched.deleteJob(jobName,JOB_GROUP_NAME);//删除任务
}

/** *//**
* 移除一个任务
* @param jobName
* @param jobGroupName
* @param triggerName
* @param triggerGroupName
* @throws SchedulerException
*/
public static void removeJob(String jobName,String jobGroupName,
String triggerName,String triggerGroupName)
throws SchedulerException{
Scheduler sched = sf.getScheduler();
sched.pauseTrigger(triggerName,triggerGroupName);//停止触发器
sched.unscheduleJob(triggerName,triggerGroupName);//移除触发器
sched.deleteJob(jobName,jobGroupName);//删除任务
}
}

測试工作类

//測试工作类
//TestJob.java

package quartzPackage;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class TestJob implements Job {
SimpleDateFormat DateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = new Date();
String returnstr = DateFormat.format(d);

public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println(returnstr+"★★★★★★★★★★★");
}

}

第三方包

通过測试。一个简单任务仅仅须要下面几个包:commons-beanutils.jar、commons-collections.jar、commons-logging.jar、commons-digester.jar、quartz.jar就可以

名称 必须/备注 网址
activation.jar 主要是 JavaMail 要用到 http://java.sun.com/products/javabeans/glasgow/jaf.html
commons-beanutils.jar http://jakarta.apache.org/commons/beanutils
commons-collections.jar http://jakarta.apache.org/commons/collections
commons-dbcp-1.1.jar 是,假如用到数据库作为作业存储 http://jakarta.apache.org/commons/dbcp
commons-digester.jar 假如你使用了某些插件,就须要它
commons-logging.jar http://jakarta.apache.org/commons/logging/
commons-pool-1.1.jar   http://jakarta.apache.org/commons/pool/
javamail.jar 发送 e-mail 用 http://java.sun.com/products/javamail/
jdbc2_0-stdext.jar 是,假如用到数据库作为作业存储 http://java.sun.com/products/jdbc/
jta.jar 是,假如用到数据库作为作业存储 http://java.sun.com/products/jta/database
quartz.jar Quart 框架核心包
servlet.jar 假如使用了Servlet 容器,但容器中应该存在 http://java.sun.com/products/servlet/
log4j.jar 是,日志 http://logging.apache.org/

最新文章

  1. redis数据结构存储Dict设计细节(redis的设计与实现笔记)
  2. osx xcode 创建python项目
  3. python新技能get——看!源!码!
  4. C#完成最简单的WebService创建及使用
  5. 怎样使用SetTimer MFC 够具体
  6. NFC-P2P MODE
  7. JAVA NIO 真正做到处理一个事件
  8. jquery倒计时自动跳转
  9. 关于session_start()这个问题
  10. linux自动启动程序
  11. 再谈 SharePoint 大局观
  12. CentOS 7 如何设置默认启动方式为命令行模式
  13. Angularjs的真分页,服务端分页,后台分页的解决方案
  14. Flex中获取RadioButtonGroup中的RadioButton的值
  15. 杭电ACM2022--海选女主角
  16. Magicodes.WeiChat——V3.0(多租户)版本发布
  17. php安全开发(1)文件包含漏洞
  18. .NET Core 中依赖注入 AutoMapper 小记
  19. load-display-image之c#版
  20. HDU-1864:最大报销额(浮点数01背包)

热门文章

  1. Spring FrameWork4(MVC + IOC)高速入门实例
  2. 玩转Web之Jsp(二)-----jsp中怎么使用CKEditor
  3. 【转】JTree调用UpdateUI()抛空指针
  4. 实现一个简单的boot
  5. 提升Mac os x 10.10+xcode6.1之后,Cocoapods发生故障的解决方案
  6. 如此的相似,不能-------Day84
  7. jedis异常:NoSuchElementException: Timeout waiting for idle object
  8. GPU 编程入门到精通(五)之 GPU 程序优化进阶
  9. 实现Asp.net Mvc分布式Session Redis群集
  10. NSIS:检查某注册表键是否存在