spring定时器配置

Posted 豆腐全家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring定时器配置相关的知识,希望对你有一定的参考价值。

在此记录两种定时任务的配置:

一种是quart定时器:

  <1>配置xml文件(定时任务配置)

  <!--定时任务 -->
    <bean id="txfwBomc" class="shmc.framework.scheduling.JobDetailFactoryBean">
        <property name="jobDataAsMap">
            <map>
                <entry key="targetObject" value="bomcManager"/>  <!-- 定时任务所在类 -->
                <entry key="targetMethod" value="bomcDataPropel"/>  <!-- 定时任务实现方法 -->
            </map>
        </property>
        <property name="concurrent" value="false" />
    </bean>
    
    <!--定义时间间隔触发器 -->
     <bean id="bomcTigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
      <property name="jobDetail" ref="txfwBomc"/>
      <property name="cronExpression" value="0 0 1 * * ?" />
    </bean> 

   <2>定义实现类的bean

<bean id="bomcManager" class="com.test.service.BomcManager" parent="frameworkManager">
</bean>

   <3>启动定时任务

  <!-- 集群定时器调度工厂  -->
    <bean id="clusterSchedule" class="shmc.framework.scheduling.SchedulerFactoryBean">
        <property name="applicationContextSchedulerContextKey">
            <value>applicationContext</value>
        </property>
        <property name="triggers">
            <list>
         <!-- BOMC推送 -->
               <ref bean="bomcTigger"/>
            </list>
        </property>
    </bean>

  <4>业务层实现代码

  ………………

 

  

一种利用注解:

  <1>配置xml文件,需要引用spring-task-3.1.xsd文档。

<beans 
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="
        http://www.springframework.org/schema/task     //名称空间的名字
        http://www.springframework.org/schema/task/spring-task-3.1.xsd">  //模式文档的位置
    
    <!-- 扫描包路径 -->
    <context:component-scan base-package="com.src.xx" >
    </context:component-scan>
    <!--  开启定时器-->
    <task:annotation-driven/>
    
</beans> 

  <2>java代码,具体实现在业务层实现

package com.src.xx.controller.api.timer;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.src.xx.service.timer.XianshiTimerService;


@Component("taskXianshi")
public class XianshiTimer {
    
    @Autowired
    private XianshiTimerService xianshiTimerService;
    
    /**
     * 定时任务
     */
    @Scheduled(cron = "0 26 10 * * ?") 
    public void xsActivityRemind(){
        xianshiTimerService.xsActivityRemind();
    }
       
}

 

 

● spring定时任务cronExpression时间:<注意:每个时间点中间必须有空格分隔>
  一个cronExpression的表达式从左到右定义:
  秒(0-59)
  分钟(0-59)
  小时(0-23)
  月份中的日期(1-31)
  月份(1-12或JAN-DEC)
  星期中的日期(1-7或SUN-SAT)
  年份(1970-2099)

以上是关于spring定时器配置的主要内容,如果未能解决你的问题,请参考以下文章

基于XML和注解的Spring定时器

使用spring@Scheduled进行任务定时

spring中定时器每周执行两次

spring定时器如何配置???

spring schedule定时任务:配置文件的方式

Spring Boot 中配置定时任务,实现多线程操作