Quartz 定时器的使用之 XML 配置方式 (二)
2016-12-07 22:10
295 查看
最近发现一个更好的配置定时器的方法, 废话不多说,开搞:
1. 导入 jar 包,这里使用的 quartz 包是 spring 的所以无需引入其他 jar
2. 在你的配置文件目录下 创建一个 xml 文件
下面就是代码:
⑴定义触发器管理器 我是这么叫
⑵注册 triggerbean
⑶定义具体的 jobDetail
⑷定义具体的 Job 类 这个类是咱们自己写的 就是上面的 job1Class
job1ClassProperty 就是这个类的成员属性啦
===========================================
现在看下各个引用到的 spring 的类,主要看他们的一些成员属性:
SchedulerFactoryBean:
CronTriggerBean
MethodInvokingJobDetailFactoryBean:
1. 导入 jar 包,这里使用的 quartz 包是 spring 的所以无需引入其他 jar
2. 在你的配置文件目录下 创建一个 xml 文件
下面就是代码:
⑴定义触发器管理器 我是这么叫
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <!-- <property name="startupDelay" value="180"/> 启动服务器后延迟启动定时任务 --> <property name="triggers"> <list> <ref bean="trigger1" /> <ref bean="trigger2" /> <ref bean="trigger3" /> <ref bean="trigger4" /> </list> </property> <property name="autoStartup" value="true" /><!--这里配置自动启动--> </bean>
⑵注册 triggerbean
<!-- 绑定 begin --> <bean id="trigger1" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobDetail2" /> <property name="cronExpression" value="*/10 * * * * ?" /><!-- 每隔10秒钟触发一次 --> </bean>
⑶定义具体的 jobDetail
<bean id="sc_timerJobDetail2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref=job1Class" /> <property name="targetMethod" value="execute" /> <property name="concurrent" value="false" /> <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 --> </bean>
⑷定义具体的 Job 类 这个类是咱们自己写的 就是上面的 job1Class
job1ClassProperty 就是这个类的成员属性啦
<bean id="job1Class" class="xyz.spacexplore.Job1Class"> <property name="job1ClassProperty" ref="job1ClassProperty"></property> </bean>
===========================================
现在看下各个引用到的 spring 的类,主要看他们的一些成员属性:
SchedulerFactoryBean:
private Class<? extends SchedulerFactory> schedulerFactoryClass = StdSchedulerFactory.class; private String schedulerName; private Resource configLocation;//也是配置文件位置 private Properties quartzProperties;//quartz的配置文件 这个没用过 private Executor taskExecutor; private DataSource dataSource; private DataSource nonTransactionalDataSource; private Map<String, ?> schedulerContextMap; private ApplicationContext applicationContext;//上下文对象 private String applicationContextSchedulerContextKey; private JobFactory jobFactory; private boolean jobFactorySet = false; private boolean autoStartup = true;//是否自动启动 private int startupDelay = 0;//设置延迟启动时长 private int phase = Integer.MAX_VALUE; private boolean exposeSchedulerInRepository = false; private boolean waitForJobsToCompleteOnShutdown = false; private Scheduler scheduler;
CronTriggerBean
private static final Constants constants = new Constants(CronTrigger.class); private JobDetail jobDetail;//这个就不用说了 private String beanName;//更不用说了 private long startDelay = 0;//也是延迟启动
MethodInvokingJobDetailFactoryBean:
private static Class<?> jobDetailImplClass;//job的具体实现类 private static Method setResultMethod; private String name; private String group = Scheduler.DEFAULT_GROUP; private boolean concurrent = true; private String targetBeanName; private String[] jobListenerNames; private String beanName; private ClassLoader beanClassLoader = ClassUtils.getDefaultClassLoader(); private BeanFactory beanFactory; private JobDetail jobDetail; //静态成员类 public static class MethodInvokingJob extends QuartzJobBean
相关文章推荐
- spring aop的使用(注解方式以及基于xml配置方式)
- JAVA_WEB项目之使用Spring的xml配置方式在项目中管理Lucene检索框架
- Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
- spring3.0定时器 xml配置和注解方式
- hibernate 中使用XML配置方式cascade取值
- Java使用xml方式配置Log4j
- spring aop的使用(注解方式以及基于xml配置方式)
- Spring3中定时器的配置使用之Quartz
- spring3.0定时器 xml配置和注解方式
- WEB.XML中加载定时器的配置方式
- 使用序列化的方式来读取XML配置文件
- Spring3中定时器的配置使用之Quartz
- Spring 配置定时器(注解+xml)方式—整理
- Hibernate复合主键使用组件方式的hbm.xml配置与集合配置
- 使用Spring的Quartz方式实现Java定时器功能
- servlet 3.0无需配置web.xml,使用注入方式配置servlet实现登陆功能(服务器需要支持servlet3.0)
- [Web]Servlet中使用Quartz【二】基于配置文件和jobs.xml触发任务执行
- 使用Spring定时器定时任务的几种配置方式及示例
- Spring进阶之路(11)-使用Aspectj切面配置和XML配置文件方式实现切面编程
- Spring定时器的配置(注解+xml)方式