java定时任务

java定时任务的实现有很多方式。

比如,开启一个单独的线程,按照自己的规则,一直循环执行。这种方式适用于简单的任务。

java还提供了定时任务相关的类。java.util.Timer和java.util.TimerTask,还有java.util.concurrent.ScheduledExecutorService。

另外,开源项目Quartz实现了简单且强大的作业调度框架。使用Spring时,可以很容易进行整合。

Spirng自己也提供了定时任务的实现:spring task。无需额外的jar包,支持注解和配置方式。

简单说一下配置方式的实现:

1:根据需要,写一个定时任务的类。使用@Component注解进行扫描。(或者配置进去也行)

package pers.wargon.task;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

/**
 * 商户相关的定时任务
 */
@Component("businessTask")
public class BusinessTask {

    private static final Logger logger = LoggerFactory.getLogger(BusinessTask.class);

    /**
     * 同步已售数量
     */
    public void synNumber(){
        logger.info("已同步");
    }

}

配置文件:

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

    <!--扫描task包-->
    <context:component-scan base-package="pers.wargon.task"/>

    <!--启动定时任务-->
    <task:scheduled-tasks>
        //每个task指定一个任务类。ref指定Bean的id,method指定定时任务方法。corn指定定时规则。
        //corn表达式具体可以百度。
        <task:scheduled ref="businessTask" method="synNumber" cron="0 */5 * * * ?"/>
    </task:scheduled-tasks>

</beans>

再把配置文件指定到spring容器中,就OK了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值