Quartz使用-入门使用
来源:互联网 发布:万维网域名证书在哪 编辑:程序博客网 时间:2024/04/29 14:18
注:这里使用的是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.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使用-入门使用
- Quartz使用入门
- Quartz入门使用
- Quartz使用入门
- Quartz.net使用入门(一)
- Quartz.net使用入门(二)
- Quartz.net使用入门(三)
- Quartz入门实例10-使用Quartz默认的线程池
- 使用spring 的Quartz 定时任务入门
- CronTrigger表达式和Quartz使用实例入门
- Quartz Spring 定时器 入门到使用
- Quartz使用
- quartz 使用
- Quartz 使用
- Quartz使用
- quartz 使用
- Quartz 使用
- quartz 使用
- 命名规范
- [数据结构]九大基础排序算法总结
- qt实现二维码生成
- Java对象初始化的过程
- 字符串------打印1到最大的n位数
- Quartz使用-入门使用
- python3学习记录——安装pyspider中lxml安装问题
- [问题] mac执行git命令出现xcrun: error: invalid active developer path解决方法
- ORA-14097: column type or size mismatch in ALTER TABLE EXCHANGE PARTITION
- STL Iterator 迭代器
- Android Studio报错:Gradle DSL method not found: 'android()'
- https://segmentfault.com/a/1190000002620961
- 深度学习读书笔记之RBM(限制波尔兹曼机)
- 76-Search in Rotated Sorted Array