定时器,简单记录
来源:互联网 发布:淘宝商城女装秋装外套 编辑:程序博客网 时间:2024/06/07 15:01
定时器学习笔记,记录一下。
这里使用的jar包是:quartz-all-1.6.0 jar
使用定时器的jar时,需要引用其他的依赖包
com.springsource.org.apache.commons.beanutils-1.8.0.jar
com.springsource.org.apache.commons.collections-3.2.1.jar
com.springsource.org.apache.commons.digester-1.8.1.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
jta-1.1.jar
quartz-all-1.6.0.jar
才能正常的启动。
package com.lsh.utils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import org.quartz.CronTrigger;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.SchedulerFactory;import org.quartz.impl.StdSchedulerFactory;public class SchedulerJod { /** * 添加一个定时任务 * @param jobName * @param jobGroupName * @param triggerName * @param triggerGroupName * @patam className * @param time * @throws SchedulerException */ public boolean addJob(String jobName,String jobGroupName,String triggerName, String triggerGroupName,String className,String time) throws SchedulerException{ Scheduler scheduler = new StdSchedulerFactory().getScheduler();//真实的开发工程中,用注解注入scheduler,或者用xml配置文件获取bean boolean flag = false; try { Class<?> clazz = Class.forName(className); JobDetail jobDetail = new JobDetail(jobName, jobGroupName, clazz); CronTrigger cronTrigger = new CronTrigger(triggerName, triggerGroupName); cronTrigger.setCronExpression(time); scheduler.scheduleJob(jobDetail, cronTrigger); if(!scheduler.isShutdown()){ System.out.println("scheduler 的状态为--->"+scheduler.isShutdown()); scheduler.start(); flag = true; } } catch (ClassNotFoundException e) { System.out.println("启动定时任务失败"); e.printStackTrace(); } catch (ParseException e) { System.out.println("启动定时任务失败"); e.printStackTrace(); } return flag; } /** * 批量插入任务job * @param list 任务列表list集合 */ public void startJob(List<TaskJob> list){ if(list == null || list.size() == 0){ System.out.println("无定时队列"); return; } for(TaskJob taskJob : list){ String jobName = taskJob.getJobName(); String jobGroupName = taskJob.getJobGroupname(); String className = taskJob.getClassName(); String cronExpression = taskJob.getCronExpression(); try { boolean flag = addJob(jobName, jobGroupName, jobName+"Trigger",jobGroupName+"Trigger" , className, cronExpression); if(flag){ System.out.println(jobName+"插入任务池成功!"); }else{ System.out.println("插入任务池失败"); } } catch (SchedulerException e) { e.printStackTrace(); } } } /** * 移除定时任务,使用默认组名 * @param args * @throws SchedulerException * @throws ParseException * @throws InterruptedException */ public void removeJob(String jobName, String jobGroup) throws SchedulerException{ Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.pauseTrigger(jobName+"Trigger", jobGroup); scheduler.deleteJob(jobName+"Trigger", jobGroup); System.out.println("移除任务成功"); } /** * 暂停所有的任务 * @param args * @throws SchedulerException * @throws ParseException * @throws InterruptedException */ public void pauseAllJob(){ try { Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.pauseAll(); } catch (SchedulerException e) { e.printStackTrace(); } } /**关闭所有的定时任务 * @throws SchedulerException */ public void shutdownJobs() throws SchedulerException{ Scheduler scheduler = new StdSchedulerFactory().getScheduler(); if(!scheduler.isShutdown()){ scheduler.shutdown(); } System.err.println("关闭定时任务成功!"); } /** * 唤醒所有的任务 * @param args * @throws SchedulerException * @throws ParseException * @throws InterruptedException */ public void modifyJobTime(String jobName,String time) throws SchedulerException{ Scheduler scheduler = new StdSchedulerFactory().getScheduler(); CronTrigger trigger = (CronTrigger) scheduler.getTrigger(jobName, null); if(trigger == null){ return; } String oldTime = trigger.getCronExpression(); if(!oldTime.equalsIgnoreCase(time)){ JobDetail jobDetail = scheduler.getJobDetail(jobName, ""); Class ObjJobClass = jobDetail.getJobClass(); removeJob(jobName, "jobGroup"); addJob(jobName, "jobGroupName", "triggerName", "triggerGroupName", "className", "oldTime"); } } public static void main(String[] args) throws SchedulerException, ParseException, InterruptedException { //Scheduler scheduler = new StdSchedulerFactory() SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); String date = new SimpleDateFormat("yyyy-MM-dd hh:MM:ss").format(new Date()); String job_name ="定时任务"+date; JobDetail jobDetail = new JobDetail(job_name, "testJobGroup", quartzJobTest.class); CronTrigger cronTrigger = new CronTrigger(job_name+"Trigger", "testJobGroup"); cronTrigger.setCronExpression("1/1 * * * * ?"); scheduler.scheduleJob(jobDetail, cronTrigger); if(!scheduler.isShutdown()){ System.out.println("scheduler状态---》"+!scheduler.isShutdown()); scheduler.start(); } Thread.sleep(6000); /*scheduler.pauseTrigger(job_name+"Trigger", "testJobGroup");//暂停触发器 scheduler.unscheduleJob(job_name+"Trigger", "testJobGroup");//移除触发器 scheduler.deleteJob(job_name, "testJobGroup"); System.out.println(job_name + "--->删除任务成功!!"); */ jobDetail = new JobDetail(job_name+"Test1", "testJobGroup", quartzJobTest.class); cronTrigger = new CronTrigger(job_name+"test1"+"Tigger", "testJobGroup"); cronTrigger.setCronExpression("1/1 * * * * ?"); scheduler.scheduleJob(jobDetail, cronTrigger); if(!scheduler.isShutdown()){ System.out.println("scheduler状态---》"+!scheduler.isShutdown()); scheduler.start(); } //暂停任务job_name+test任务 Thread.sleep(5 * 1000); scheduler.pauseJob(job_name+"Test1", "testJobGroup"); System.out.println("---------------------------------------------暂停任务成功!!!"); Thread.sleep(5 * 1000);// 唤醒job_name+test任务 scheduler.resumeJob(job_name+"Test1","testJobGroup" ); System.out.println("------------------------------------------------唤醒任务成功!!!!"); // }}
阅读全文
0 0
- 定时器,简单记录
- TCP的四种定时器简单记录
- 定时器记录
- 【记录】定时器
- dispatch_source定时器使用记录
- 【记录】看门狗定时器基础
- Qt+openGL学习记录(5)`加入定时器开启自动旋转,绘制三维简单对象`
- 定时器简单应用
- 定时器简单应用
- 简单的定时器
- 简单 window 定时器
- 定时器简单的Demo
- SSH简单定时器例子
- Spring定时器简单使用
- Spring 简单定时器
- spring定时器简单配置
- Nginx---定时器<简单说明>
- JAVA定时器简单实例
- angularjs服务获取屏幕宽度,url,本机地址...
- JS 打开新窗口
- lua 函数(3)
- 社团检测(community detection)相关文献整理(2015-2017)
- Qt:Model/View架构的简单使用
- 定时器,简单记录
- Lucene实践:Lucene总体设计架构
- 奇偶位排序
- spring框架(1)
- CSS样式使用心得
- 欢迎使用CSDN-markdown编辑器
- Zookeeper框架Curator之分布式锁-yellowcong
- 1028. 人口普查(20)
- windbg实验1