Quartz使用-入门使用(java定时任务实现)
来源:互联网 发布:手机怎么注册淘宝卖家 编辑:程序博客网 时间:2024/06/05 15:45
注:这里使用的是Quartz1.6.5版本(包:quartz-1.6.5.jar)
- //测试main函数
- //QuartzTest.<a href="http://lib.csdn.net/base/17" class='replace_word' title="Java EE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>
- 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.htmlcommons-beanutils.jar是http://jakarta.apache.org/commons/beanutilscommons-collections.jar是http://jakarta.apache.org/commons/collectionscommons-dbcp-1.1.jar是,假如用到数据库作为作业存储http://jakarta.apache.org/commons/dbcpcommons-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/databasequartz.jar是Quart 框架核心包servlet.jar假如使用了Servlet 容器,但容器中应该存在http://java.sun.com/products/servlet/log4j.jar是,日志http://logging.apache.org/
0 0
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- Quartz使用-入门使用(java定时任务实现)
- 使用spring 的Quartz 定时任务入门
- POJ 1061 青蛙的约会
- 【HUSTOJ】1053: 字符图形9-数字正三角
- [读书笔记]Clean Code (1-8章)
- 去除android控件滑动的时候出现的阴影
- react爬坑记16---reflux
- Quartz使用-入门使用(java定时任务实现)
- Linux-28-linux基础重要命令05(L005-10)
- 软件测试分类(软件测试基础知识)
- Spring 中 MultipartResolver
- 【HUSTOJ】1054: 字符图形10-字母三角
- Android Studio快捷键
- 用R语言分析詹姆斯的客场得分
- ubuntu 安装APC
- 用脚本将指定文件移入到U盘中