在Spring中使用Quartz进行任务调度(5)

创建Scheduler 
    Quartz的SchedulerFactory是标准的工厂类,不太适合在Spring环境下使用。此外,为了保证Scheduler能够感知Spring容器的生命周期,完成自动启动和关闭的操作,必须让Scheduler和Spring容器的生命周期相关联。以便在Spring容器启动后,Scheduler自动开始工作,而在Spring容器关闭前,自动关闭Scheduler。为此,Spring提供SchedulerFactoryBean,这个FactoryBean大致拥有以下的功能:
    1)以更具Bean风格的方式为Scheduler提供配置信息;
    2)让Scheduler和Spring容器的生命周期建立关联,相生相息;
    3)通过属性配置部分或全部代替Quartz自身的配置文件。
    来看一个SchedulerFactoryBean配置的例子:

    代码清单 9 SchedulerFactoryBean配置

<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers"> ①注册多个Trigger
<list>
<ref bean="simpleTrigger" />
</list>
</property>
<property name="schedulerContextAsMap">②以Map类型设置SchedulerContext数据
<map>
<entry key="timeout" value="30" />
</map>
</property>

  
  
    ③显式指定Quartz的配置文件地址
   <property name="configLocation" value="classpath:com/baobaotao/quartz/quartz.properties" />
    </bean>
    SchedulerFactoryBean的triggers属性为Trigger[]类型,可以通过该属性注册多个Trigger,在①处,我们注册了一个Trigger。Scheduler拥有一个类似于ServletContext的SchedulerContext。SchedulerFactoryBean允许你以Map的形式设置SchedulerContext的参数值,如②所示。默认情况下,Quartz在类路径下查询quartz.properties配置文件,你也可以通过configLocation属性显式指定配置文件位置,如③所示。
    除了实例中所用的属性外,SchedulerFactoryBean还拥有一些常见的属性:
    ●calendars:类型为Map,通过该属性向Scheduler注册Calendar;
    ●jobDetails:类型为JobDetail[],通过该属性向Scheduler注册JobDetail;
    ●autoStartup:SchedulerFactoryBean在初始化后是否马上启动Scheduler,默认为true。如果设置为false,需要手工启动Scheduler;
    ●startupDelay:在SchedulerFactoryBean初始化完成后,延迟多少秒启动Scheduler,默认为0,表示马上启动。如果并非马上拥有需要执行的任务,可通过startupDelay属性让Scheduler延迟一小段时间后启动,以便让Spring能够更快初始化容器中剩余的Bean。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值