Quartz 重复定时任务 配置文件方式 定时更新商品浏览量场景

Maven

<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.3.0</version>
        </dependency>

配置文件XML

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 要执行任务的任务类。 -->
    <bean id="testQuartz" class="com.realfake.manager.bussiness.quarzt.job.TestJob">
    </bean>

    <!-- 将需要执行的定时任务注入JOB中。 -->
    <bean id="testJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="testQuartz"/>
        <!-- 任务类中需要执行的方法 -->
        <property name="targetMethod" value="dosomething"/>
        <!-- 上一次未执行完成的,要等待有再执行。 -->
        <property name="concurrent" value="false"/>
    </bean>

    <!-- 基本的定时器,会绑定具体的任务。启动容器后每3秒执行一次 -->
    <bean id="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="testJob"/>
        <property name="startDelay" value="3000"/>
        <property name="repeatInterval" value="3000"/>

        <!--&lt;!&ndash;执行次数&ndash;&gt;-->
        <!--&lt;!&ndash;<property name="repeatCount" value="0"/>&ndash;&gt;-->
    </bean>

    <!-- lazy-init="true" 时容器启动时不执行 -->
    <bean id="schedulerFactoryBean" lazy-init="false" autowire="no"
          class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="testTrigger"/>
            </list>
        </property>
    </bean>

    
</beans>

TestJob类 可以在里面执行业务逻辑

package com.realfake.manager.bussiness.quarzt.job;

import org.quartz.Job;
import org.quartz.JobExecutionContext;

import java.text.SimpleDateFormat;
import java.util.Date;

public class TestJob {
    public void dosomething(){

        System.out.println("————"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
    }

}

启动spring容器后自动运行任务

在TestJob里每隔一段时间从redis获取商品在这段时间增加的浏览数量,更新到数据库后重置redis的商品浏览量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值