/** * Task Scheduler class * @author Joyce.luo * @date 2015-3-31 pm 03:32:04 * @version V3.0 * @since tomcat6.0,jdk1.6 * @copyright Copyri Ght (c) */public class Quartzjob {/** * task ID */Private Integer jobId; /** * Task Name */Private String jobName; /** * Task Group */Private String jobgroup; /** * Task Status 0 Disable 1 Enable 2 Delete */private Integer jobstatus; /** * Task Run-time expression */private String cronexpression; /** * @return The JOBID * */Public Integer getjobid () {return jobId; }/** * @param jobId * The jobId to set */public void Setjobid (Integer jobId) {this. JobId = jobId; }/** * @return the JobName * */Public String Getjobname () {return jobName; }/** * @param jobName * The jobName to set */public void Setjobname (String jobName) { This.jobname = JobName; }/** * @return the Jobgroup * */public String GETJOBGRoup () {return jobgroup; }/** * @param jobgroup * The Jobgroup to set */public void Setjobgroup (String jobgroup) { This.jobgroup = Jobgroup; }/** * @return the Jobstatus * */Public Integer Getjobstatus () {return jobstatus; }/** * @param jobstatus * The Jobstatus to set */public void Setjobstatus (Integer jobstatus ) {this.jobstatus = Jobstatus; }/** * @return the cronexpression * */Public String getcronexpression () {return cronexpression; }/** * @param cronexpression * The cronexpression to set */public void setcronexpression (St Ring cronexpression) {this.cronexpression = cronexpression; }}
Import Org.apache.log4j.logger;import Org.quartz.job;import Org.quartz.jobexecutioncontext;import Org.quartz.jobexecutionexception;import com.hupu.nac.biz.iauthpolicyclientbiz;/** * Client Long Connection Disconnect Task Dispatch factory class * @author Joyce.luo * @date 2015-3-31 pm 03:38:35 * @version V3.0 * @since tomcat6.0,jdk1.6 * @copyright Copyright (c) */public Class Linkdisconnectquartzjobfactory implements Job { private static final Logger Logger = Logger.getlogger ( Linkdisconnectquartzjobfactory.class); @Override public Void execute (Jobexecutioncontext context) throws Jobexecutionexception { quartzjob Schedulejob = (quartzjob) context.getmergedjobdatamap (). Get ("Linkdisconnectjob"); Logger.info ("Client Long disconnect timer task starts execution, task name [" + schedulejob.getjobname () + "]");} }
Import Org.apache.log4j.logger;import Org.quartz.cronschedulebuilder;import Org.quartz.crontrigger;import Org.quartz.jobbuilder;import Org.quartz.jobdetail;import Org.quartz.jobkey;import Org.quartz.TriggerBuilder; Import Org.quartz.triggerkey;import org.quartz.impl.stdscheduler;/** * Client Long Connection disconnect task scheduling management class * @author Joyce.luo * @date 2015-3-31 pm 03:42:30 * @version V3.0 * @since tomcat6.0,jdk1.6 * @copyright Copyright (c) */public class Linkdisconne Ctquartzmanager {private static final Logger Logger = Logger.getlogger (Linkdisconnectquartzmanager.class); Private Stdscheduler Scheduler; /** * @param Scheduler the Scheduler to set */public void Setscheduler (Stdscheduler scheduler) {THIS.S Cheduler = Scheduler; }/** * Initialize Task Scheduler * @author Joyce.luo * @date 2015-3-31 pm 03:48:55 * @version V3.0 * @since TOMCA t6.0,jdk1.6 * @copyright Copyright (c) */public void Initjob () {logger.info ("Initialize client long connection disconnection task scheduling");Quartzjob job = new Quartzjob (); Job.setjobname ("Link_disconnect_job"); Job.setjobgroup ("Link_disconnect_group"); Job.setjobstatus (1); Job.setcronexpression ("0 0/1 * * *?"); try {triggerkey Triggerkey = Triggerkey.triggerkey (Job.getjobname (), Job.getjobgroup ()); Crontrigger trigger = (Crontrigger) scheduler.gettrigger (Triggerkey); if (null = = Trigger) {addquartzjob (job, trigger); }} catch (Exception e) {logger.error ("Initialize the client long connection disconnects the task schedule exception! "+ e.getmessage (), E); }}/** * Add Scheduled Tasks to Task Scheduler * @param Job Timing Task Information * @param trigger Schedule Trigger * @author Joyce.luo * @d Ate 2015-3-31 pm 04:04:58 * @version V3.0 * @since tomcat6.0,jdk1.6 * @copyright Copyright (c) */P rivate void Addquartzjob (quartzjob job, Crontrigger Trigger) {Logger.info ("Add Timed tasks to Task Scheduler"); try {jobdetail jobdetail = jobbuilder.newjob (LinkdisConnectquartzjobfactory.class). Withidentity (Job.getjobname (), Job.getjobgroup ()). build (); Jobdetail.getjobdatamap (). Put ("Linkdisconnectjob", job); Cronschedulebuilder Schedulebuilder = Cronschedulebuilder.cronschedule (Job.getcronexpression ()); Trigger = Triggerbuilder.newtrigger (). Withidentity (Job.getjobname (), Job.getjobgroup ()). Withschedule ( Schedulebuilder). build (); Scheduler.schedulejob (Jobdetail, Trigger); } catch (Exception e) {logger.error ("adds a scheduled task exception to the task schedule! "+ e.getmessage (), E); }}/** * Modify Scheduled Tasks in Task Scheduler * @param Job Timing Task Information * @param Triggerkey timed dispatch trigger key * @param trigger timing Schedule Trigger * @author Joyce.luo * @date 2015-3-31 pm 04:16:54 * @version V3.0 * @since tomcat6.0,jdk1.6 * @copyrigh T Copyright (c) */void Updatequartzjob (Quartzjob job, Triggerkey Triggerkey, Crontrigger trigger) {log Ger.info ("Modify Scheduled Tasks in task scheduling"); try {if (null = =Job | | Null = = Triggerkey | | NULL = = Trigger) {Logger.info ("Modify schedule task parameter is not normal! "); Return } logger.info ("Original task expression:" + trigger.getcronexpression () + "Now task expression:" + job.getcronexpression ()); if (Trigger.getcronexpression (). Equals (Job.getcronexpression ())) {Logger.info ("Task Scheduler expression is consistent, not modified!") "); Return } logger.info ("Task Scheduler expression inconsistent, make changes"); Cronschedulebuilder Schedulebuilder = Cronschedulebuilder.cronschedule (Job.getcronexpression ()); Trigger = Trigger.gettriggerbuilder (). withidentity (Triggerkey). Withschedule (Schedulebuilder). build (); Scheduler.reschedulejob (Triggerkey, Trigger); } catch (Exception e) {logger.error ("Modify scheduled task exceptions in Task Scheduler! "+ e.getmessage (), E); }}/** * Delete Scheduled Tasks in Task Scheduler * @param Job Timing Task Information * @author Joyce.luo * @date 2015-3-31 04:30:03 * @version V3.0 * @since tomcat6.0,jdk1.6 * @copyriGht Copyright (c) */void Deletejob (Quartzjob job) {logger.info ("Delete Scheduled tasks in Task Scheduler"); try {if (null = = Job) {logger.info ("Delete Schedule task parameter is not working properly! "); Return } Jobkey Jobkey = Jobkey.jobkey (Job.getjobname (), Job.getjobgroup ()); if (null = = Jobkey) {logger.info ("Task Scheduler does not exist [" + job.getjobname () + "] timed tasks, do not delete! "); Return } scheduler.resumejob (Jobkey); } catch (Exception e) {logger.error ("Delete scheduled task exceptions in Task Scheduler! "+ e.getmessage (), E); }}/** * Delete Task Scheduler timer * @param triggerkey * @author Joyce.luo * @date 2015-3-31 04:35:33 * @ Version V3.0 * @since tomcat6.0,jdk1.6 * @copyright Copyright (c) */void Deletejob (Triggerkey trigger Key) {logger.info ("Delete Task Scheduler timer"); try {if (null = = Triggerkey) {logger.info ("Stop task timer parameter is not normal, do not stop!") "); Return } logger.info ("Stop task Timer"); Scheduler.resumetrigger (Triggerkey); } catch (Exception e) {logger.info ("Delete Task Scheduler Timer exception! "+ e.getmessage (), E); } }}
<bean id= "Linkdisconnectscheduler" class= "Org.springframework.scheduling.quartz.SchedulerFactoryBean"/> <bean id= "Linkdisconnectquartzmanager" class= "Com.hupu.nac.timertask.LinkDisconnectQuartzManager" init-method= "Initjob" >
Application examples of Spring3 and QUARTZ2