spring中如何使用作业调度框架Quartz呢?

书欣 Spring 2022-09-13 22:56:51 10968 1
下文笔者讲述spring中使用Quartz作业调度框架的示例说明,如下所示

Quartz作业框架简介

Quartz 是一个开源的作业调度框架
 它是一个纯Java语言编写的作业调度框架
 并设计用于J2SE和J2EE应用中
它提供巨大的灵活性而不牺牲简单性
 你能够用它来为执行一个作业而创建简单的或复杂的调度

Quartz下载地址

http://grepcode.com/snapshot/repo1.maven.org/maven2/org.quartz-scheduler/quartz/1.7.3

applicationContext.xml

Xml代码  

<!– Timer schedule –>
<!–要调度的对象–>  
<bean id=“jobBean” class=“net.xsbiz.common.MakeHtml” />  
<bean id=“jobDetail” class=“org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean”>  
    <property name=“targetObject” ref=“jobBean” />  
    <property name=“targetMethod” value=“execute” />  
    <!–将并发设置为false–>  
    <property name=“concurrent” value=“false” />  
</bean>  
  
<bean id=“trigger” class=“org.springframework.scheduling.quartz.CronTriggerBean”>  
        <property name=“jobDetail” ref=“jobDetail” />  
                <!–表达式,我的是每 30 执行一次–>  
               <property name=“cronExpression” value=“0/30 * * * * ?” />  
</bean>  
  
<!–  总管理类如果将lazy-init=’false’那么容器启动就会执行调度程序   –>  
<bean id=“startQuertz” class=“org.springframework.scheduling.quartz.SchedulerFactoryBean” lazy-init=“false” >  
        <property name=“triggers”>  
            <list>  
                <!–作业调度器,list下可加入其他的调度器–>  
            <ref bean=“trigger” />  
            </list>  
    </property>  
</bean>  

web.xml

 <!– 设置Spring的监听,项目启动时候初始化 –>  
 <listener>  
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
 </listener>  
 <!– 指定Spring配置文件的路径 –>  
 <context-param>   
      <param-name>contextConfigLocation</param-name>   
      <param-value>/WEB-INF/classes/applicationContext.xml</param-value>    
 </context-param> 
 
Test.java :
//调用的类  
public class Test {  
    //调用的方法  
    public void execute(){  
        //需要做的事情  
    }  
  
 public static void main(String[] args) {   
	System.out.println(“—-begin—“);   

	ApplicationContext context = new ClassPathXmlApplicationContext(“applicationContext.xml”);   
	// 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化 
	context.getBean(“startQuertz”);   
	System.out.print(“—-end—“);  
    }  
}  

各参数说明

1.JobDetail:
     JobDetail是一个具体的类
2.Trigger:
     触发器,用于定义Job何时执行
     常用如:SimpleTrigger和CronTrigger
      如果需要在一个固定的时间和重复次数或一个固定的间隔时间,则SimpleTrigger比较合适
      如果有许多复杂的作业调度,那么CronTrigger比较合适
    CronTrigger和Unix的cron机制基本一样,
	  只是一个 cron 表达式
    如“ 0 0 8 * * ? ”会在每天上午 8 点触发
 3.Scheduler 和 SchedulerFactory:
     Scheduler负责管理Trigger,调度Job,
	 SchedulerFactory则是 Scheduler 工厂,负责生成Scheduler
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: http://www.Java265.com/JavaFramework/Spring/202209/4416.html

最近发表

热门文章

好文推荐

Java265.com

//www.java265.com

站长统计|USA-001

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者