Java中石英弹簧调度器详解及实例

  

<强>一、石英的特点

  

*按作业类的继承方式来分,主要有以下两种:

  

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中石英弹簧调度器详解及实例