zoukankan      html  css  js  c++  java
  • spring中的任务

        最近需要在项目中使用定时任务,第一个是要每个小时运行一次,第二个是每月的1号运行一次。在网上找了下资料,用spring中的可以完成这个任务。

        先写个业务处理类:

    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import org.springframework.scheduling.quartz.QuartzJobBean;
    
    public class JobYear extends QuartzJobBean{
    
    	@Override
    	protected void executeInternal(JobExecutionContext arg0)
    			throws JobExecutionException {
    		// TODO Auto-generated method stub
    		System.out.println("正在测试job");
    	}
    }
    

        需要在java中继承QuartzJobBean,当然你也可以不继承,然后用spring来指定运行的方法。

        不过我个人还是觉得像这种java业务类,由于其业务的五花八门,一般也不会移植到其他项目。同时由于继承了QuartzJobBean,还带来了一个小小的好处,spring不需要通过反射来调用方法,理论上还是减少了一点点的系统资源。

    还需要在spring中进行配置:

      <bean id="jobDetailBean" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="job.JobYear" />
      </bean>
    
     <!-- 此处是定时处理,按时间间隔进行-->
    <bean id="simpleTriggerBean" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail" ref="jobDetailBean"/>
    <property name="repeatInterval" value="5000"/>
    <property name="startDelay" value="1000"/>
    </bean>

    <!-- 此处是按指定时间进行 下例:每月1日10:15分进行--> <bean id="cronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobDetailBean"/> <property name="cronExpression" value="0 15 10 1 * ?"/> </bean> <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTriggerBean"/> <!-- 此处可以配置多个job--> </list> </property> </bean>

    需要在系统lib中加入quartz-1.6.0.jar和log4j.jar

  • 相关阅读:
    深入浅出讲解 ElasticSearch的安装与使用【建议收藏】
    win10 elasticsearch安装IK中文分词器
    elasticsearch 使用过程中经常遇到的问题
    在给elasticsearch安装head插件时,npm install 版本不匹配
    elasticsearch.bat闪退的解决方案
    图文详解| Node.js安装及环境配置之Windows篇
    面试必备:秒杀场景九个细节
    vagrant 安装中遇到的问题
    2021 年上海市成人高校考试招生工作规定
    成考专科数学模拟试题一及答案
  • 原文地址:https://www.cnblogs.com/malaya/p/4111525.html
Copyright © 2011-2022 走看看