<强>一、石英的特点强>
*按作业类的继承方式来分,主要有以下两种:
1。作业类继承类的方式
2。作业类不继承类的方式
注:个人比较推崇第二种,因为这种方式下的作业类仍然是POJO。
*按任务调度的触发时机来分,主要有以下两种:
1。每隔指定时间则触发一次,对应的调度器为
2。每到指定时间则触发一次,对应的调度器为
注:这两种触发方式均可以跟两种作业继承方式相互组合来使用。
下面简单演示一下在春季对石英的用法。
<强>二,作业类继承org.springframework.scheduling.quartz.QuartzJobBean类,每到指定时间则触发一次强>
1。编写作业类
包bean.jobDetailBean; 进口org.quartz.JobExecutionContext; 进口org.quartz.JobExecutionException; 进口org.springframework.scheduling.quartz.QuartzJobBean; 公开课Job1延伸QuartzJobBean { 私人int超时; 私有静态int i=0;//调度工厂实例化后,经过超时时间开始执行调度 公共空间setTimeout (int超时){ 这一点。超时=超时; }/* * *要调度的具体任务 */@Override 保护无效executeInternal (JobExecutionContext上下文) 抛出JobExecutionException { system . out。println(“继承QuartzJobBean的方式,调度“+ + +我+”进行中…”); } } >之前2。配置作业类
& lt; !——作业使用继承QuartzJobBean的方式——比; & lt; bean name=" job1类=皁rg.springframework.scheduling.quartz.JobDetailBean”比; & lt;属性名=" jobClass " value=" https://www.yisu.com/zixun/bean.jobDetailBean.Job1 "/比; & lt;属性名=癹obDataAsMap”比; & lt; map> & lt;输入键==" https://www.yisu.com/zixun/0 "/俺薄奔壑当? & lt;/map> & lt;/property> & lt;/bean> >之前3。配置作业调度的触发方式
& lt; !——对应于作业继QuartzJobBean类的方式——比; & lt; bean id=癱ronTrigger”类=皁rg.springframework.scheduling.quartz.CronTriggerBean”比; & lt;属性名=" jobDetail " ref=" job1 "/比; & lt; ! “cronExpression”的配置说明 字段允许值允许的特殊字符 秒0-59 - */分0-59 - */小时0-23 - */日期日至31日,- * & # 63;W/L C 1 - 12月份或者JAN-DEC - */星期1 - 7或者SUN-SAT - * & # 63;L/C # 年(可选)留空,1970 - 2099,- */? *通配符 & # 63;你不想设置那个字段 ——比; & lt; !——每分钟的第0、10、20、30、40、50秒调度一次——比; & lt;属性名=" cronExpression " value=" https://www.yisu.com/zixun/0, 10年,20年,30、40、50 * * * * ?”/比; & lt;/bean> >之前4。配置调度工厂
& lt; bean类=皁rg.springframework.scheduling.quartz.SchedulerFactoryBean”比; & lt;属性名=按シⅰ北? & lt; list> & lt;裁判bean=" cronTrigger "/比; & lt;/list> & lt;/property> & lt;/bean> >之前5。开启调度
包装测试; 进口org.springframework.beans.factory.BeanFactory; 进口org.springframework.context.support.ClassPathXmlApplicationContext; 公开课ScheduleTest { 公共静态void main (String [] args) { & lt;跨度比;& lt;/span> BeanFactory工厂=new ClassPathXmlApplicationContext (“applicationContext * . xml”); } } >之前<强>三,作业类不继承org.springframework.scheduling.quartz.QuartzJobBean类,每隔指定时间则触发一次强>
1。编写作业类
包bean.jobDetailBean; 公开课Job2 { 私有静态int i=0; 公共空间doJob2 () { system . out。println(“不继承QuartzJobBean方式——调度“+ + +我+”进行中…”); } } >之前2。配置作业类
& lt; bean id=" job2 " 类=皁rg.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean”比; & lt;属性名=皌argetObject”比; & lt; bean类=" bean.jobDetailBean。Job2”/比; & lt;/property> & lt;属性名=" targetMethod " value=" https://www.yisu.com/zixun/doJob2 "/比; & lt;属性名=安⒎ⅰ奔壑?" https://www.yisu.com/zixun/false "/祝辞& lt; !——作业不并发调度——比; & lt;/bean>Java中石英弹簧调度器详解及实例