Appfuse的Quartz配置

Appfuse的Quartz配置

在实际项目开发过程中,我们经常会遇到在一个特定的时间处理特定的事情,比如,在每个星期天的晚上11点运算MRP。这里我们就可以用到Quartz的定时执行功能。在本例子中,我们只是简单的展示在特定的时间内,向数据库insert 一条记录。

 

一、 准备工作。

1、下载 Quartz1.6

https://quartz.dev.java.net/files/documents/1267/43545/quartz-1.6.0.zip

 

二、 安装到Lib目录下

1、  quartz- 1.6.0 .jar quartz- 1.6.0 .zip解压到D盘根目录。

2、  进入Appfuse的项目目录,比如: D:\myproject

3、执行命令:mvn install:install-file -Dfile=quartz- 1.6.0 .jar -DgroupId=quartz -DartifactId=quartz -Dversion=1.6.0 -Dpackaging=jar –Dfile=D/quartz-1.6.0.jar

三、 编写具体的Bean和方法


public   class  SyslogManagerImpl  extends  GenericManagerImpl < Syslog, Long >   implements  SyslogManager {

    SyslogDao syslogDao;

 

    
public  SyslogManagerImpl(SyslogDao syslogDao) {

        
super (syslogDao);

        
this .syslogDao  =  syslogDao;

    }

   

    
public   void  writesyslog(){

        Syslog syslog 
=   new  Syslog();

        syslog.setModel(
" test " );

        Date optime 
=   new  Date();

        syslog.setOpTime(optime);

        syslog.setUserid(
new  Long( 1 ));

    syslogDao.writeLog(syslog);

    }

}

 

四、 配置SpringApplicationContext-Services.xml


<!--  ===================================================================  -->

    
<!--  Quartz  configuration                                          -->

    
<!--  ===================================================================  -->

    
<!--  Schedule task configuration  -->

    
< bean  id ="methodInvokingJobDetail"  class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >

       
< property  name ="targetObject"  ref ="syslogManager" />

       
< property  name ="targetMethod"  value ="writesyslog" />

       
< property  name ="concurrent"  value ="false"   />

</ bean >

<! —这里定义每小时的第2分种和第3分种此行方法-- >

    
< bean  id ="cronTrigger"  class ="org.springframework.scheduling.quartz.CronTriggerBean" >

      
< property  name ="jobDetail"  ref ="methodInvokingJobDetail" />

      
< property  name ="cronExpression"  value ="0 2,3 * * * ?" />

    
</ bean >

    
< bean  id ="quartzCronBean"  class ="org.springframework.scheduling.quartz.SchedulerFactoryBean"  lazy-init ="false" >

      
< property  name ="triggers" >

        
< list >

           
< ref  bean ="cronTrigger" />

        
</ list >

      
</ property >

    
</ bean >

注意:这里的设置lazy-init="false",否则定时的方法不会被执行。

参考:

http://java.chinaitlab.com/advance/743501_2.html

http://flytogether.javaeye.com/blog/64909

你可能感兴趣的:(Appfuse的Quartz配置)