Spring 定时任务实现

本文介绍如何使用Spring框架配置和执行定时任务。通过示例展示了配置定时任务触发器、定义任务执行逻辑的过程,并实现了每日凌晨执行的数据同步功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
Spring 定时任务实现
1.首先配置好Spring环境,加入定时任务的配置文件,如下:
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>
 
    <!-- Configure the sync Service -->
    <bean name="randomSyncJob"
       class="org.springframework.scheduling.quartz.JobDetailBean">
 
       <property name="jobClass">
           <value>com.iman.wrms.webservice.sync.task.QuartzSyncJob</value>
       </property>
 
       <property name="jobDataAsMap">
           <map>
              <entry key="timeout">
                  <value>5</value>
              </entry>
           </map>
       </property>
 
    </bean>
    <!-- 配置触发器 -->
    <bean id="cronTrigger"
       class="org.springframework.scheduling.quartz.CronTriggerBean">
 
       <property name="jobDetail">
           <ref bean="randomSyncJob" />
       </property>
       <!-- 每天00分,触发RandomPriceJob,具体说明见附录 -->
       <property name="cronExpression">
           <value>0 0 0 * * ?</value>
       </property>
 
    </bean>
 
    <bean autowire="no"
       class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
 
       <!-- 添加触发器 -->
       <property name="triggers">
           <list>
              <ref local="cronTrigger" />
           </list>
       </property>
    </bean>
   
   
</beans>
2.编写实现任务的处理代码
package com.iman.wrms.webservice.sync.task;
 
import org.apache.log4j.Logger;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
 
import com.zhengxin.wrm.opm.dbutil.JdbcWrmDelegate;
 
/**
 * @author:Jakemanse
 * @time :2008-1-25
 * <p>description : 定时同步EOMS组织处理类
 * <p></p>
 */
public class QuartzSyncJob extends QuartzJobBean {
    private final Logger logger = Logger.getLogger(getClass());
 
 
    /**
     * 执行任务
     */
    protected void executeInternal(JobExecutionContext context)
           throws JobExecutionException {
      
       logger.info("---------------Job start---------------------");
      
       JdbcWrmDelegate jdbcDelegate;
       try{
           jdbcDelegate = new JdbcWrmDelegate();
          
           // 执行具体操作
            logger.info("正在同步机构信息.....");
            jdbcDelegate.SyncOpmOrganInfo();//同步机构信息 success
            logger.info("正在同步用户信息.....");
            jdbcDelegate.SyncOpmUserInfo();//同步用户信息 success
//         jdbcDelegate.SyncOpmJobInfo();// 同步job信息 success
//         jdbcDelegate.SyncOpmRoleInfo();//同步Role信息
            logger.info("正在执行本系统的同步存储过程.....");
//         jdbcDelegate.ExecutePro();     //执行存储过程
            logger.info("所有同步信息执行完毕.");
       }catch(Exception e){
           logger.error("机构或用户信息同步过程中出错:"+e.getCause());
           e.printStackTrace();
       }
    }  
}
 
 
实现定时功能,编写自己的类,需要继承Spring 提供的
import org.springframework.scheduling.quartz.QuartzJobBean;
然后覆盖该类的
protectedvoid executeInternal(JobExecutionContext context)
           throws JobExecutionException ; 方法,所有定时任务实现,都在这个方法里就可以了。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值