publicclassquartzmanager { privatestaticschedulerfactoryschedulerfactory=newstdschedulerfactory (;/* * * @向说明:添加计划任务
*
* @ param作业名称任务名称
*@paramjobGroupName任务组名称
*@paramtriggerName触发器名称
*@paramtriggerGroupName触发器组名称
*@paramjobClass任务
*@paramcron时间设置是quartz帮助文档*/@ suppress warnings ({ ' unchecked ',' rawtypes'} ) publicstaticvoidaddjob (stririd ) 字符串触发组名称,Class jobClass,String cron ) {try{
scheduler sched=scheduler factory.get scheduler (; //任务名称、任务组、任务执行类
job detail job detail=job builder.new job (jobclass ).with identity (job name,jobGroupName ).build ); //触发器
triggerbuildertriggerbuilder=trigger builder.new trigger (; //触发器名称,触发器组
trigger builder.with identity (trigger name,triggerGroupName );
triggerBuilder.startNow (; //触发时间设定
trigger builder.with schedule (cronschedulebuilder.cron schedule ) cron ); 创建三重对象
crontriggertrigger=(cron trigger ) triggerBuilder.build ); //调度容器设置作业详细信息和触发器
sched.schedulejob(jobdetail,trigger ); //开始
if (! sched.isShutdown () }
sched.start (;
}
}catch(exceptione ) thrownewruntimeexception;
}
(}/* * * @更改说明:任务的触发时间
*
*@paramjobName
*@paramjobGroupName
*@paramtriggerName触发器名称
*@paramtriggerGroupName触发器组名称
*@paramcron时间设置,请参阅quartz文档*
publicstaticvoidmodifyjobtime (字串工作名称、字串工作群组名称、字串触发名称、字串触发群组名称、字串控制)
scheduler sched=scheduler factory.get scheduler (;
triggerkeytriggerkey=trigger key.trigger key (trigger name,triggerGroupName );
crontriggertrigger=(cron trigger ) sched.gettrigger ) triggerkey; if(trigger==null ) {return;
}
string old time=trigger.getcronexpression (; if (! 调用OLDtime.equalsignorecase(cron ) ) (/**方式rescheduleJob
//触发器
triggerbuildertriggerbuilder=trigger builder.new trigger (; //触发器名称,触发器组
trigger builder.with identity (trigger name,triggerGroupName );
triggerBuilder.startNow (; //触发时间设定
trigger builder.with schedule (cronschedulebuilder.cron schedule ) cron ); 创建三重对象
trigger=(crontrigger ) triggerBuilder.build );
sched.reschedulejob(triggerkey,trigger ); /**方式2 :删除后再新建作业* /
/*作业详细信息job detail=sched.get job detail (job key.job key ) jobname,jobGroupName );
classextendsjobjobclass=job detail.getjobclass (;
移除作业(作业名称、作业组名称、触发名称、触发组名称);
addjob(jobname、jobGroupName、triggerName、triggerGroupName、jobClass、cron ); () ) )
}catch(exceptione ) thrownewruntimeexception;
}
(}/* * * @说明:删除一个任务
*
*@paramjobName
*@paramjobGroupName
*@paramtriggerName
*@paramtriggerGroupName*/
publicstaticvoidremovejob (字符串作业名称,字符串作业组名称,
字符串触发程序名称,字符串触发程序组名称) {try{
scheduler sched=scheduler factory.get scheduler (;
triggerkeytriggerkey=trigger key.trigger key (trigger name,triggerGroupName );
sched.pausetrigger(triggerkey; //停止触发
sched.unschedulejob (触发键; //清除触发器
sched.deletejob(jobkey.jobkey ) jobname,jobGroupName ); //删除任务
}catch(exceptione ) thrownewruntimeexception;
}
(}/* * * @说明:开始所有定时任务(/
公共静态语音作业bs () {try{
scheduler sched=scheduler factory.get scheduler (;
sched.start (;
}catch(exceptione ) thrownewruntimeexception;
}
}/*** @Description:关闭所有定时任务*/
publicstaticvoidshutdownjobs { } { try }
scheduler sched=scheduler factory.get scheduler (; if (! sched.isShutdown () }
sched.shutdown (;
}
}catch(exceptione ) thrownewruntimeexception;
}
}
}