gdufo

 

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

posted on 2008-09-06 22:42 gdufo 阅读(573) 评论(0)  编辑  收藏 所属分类: Appfuse


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

Hibernate

友情链接

搜索

最新评论

阅读排行榜

评论排行榜