spring框架的定时器应用

这两天做东西正好用到了定时操作的需求,之前没有搞过,网上一搜,挺简单的,下面记录一下,方便以后查看。

实现的途径有两种:Quartz 和spring Task

所谓条条大路通罗马,能实现需求就行,我用的是spring Task.

第一步:

首先,编写好自己的任务接口。

package com.beefly.monitor.inteceptor;


import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.dubbo.config.annotation.Service;
import com.beefly.monitor.service.BikeService;

@Service
public class TaskSaveBikeState {

	@Autowired
	private BikeService bikeService;
	/**
	 * 定时插入BikeState信息
	 */
    public void TaskOne(){
        System.out.println("task定时任务");
        System.out.println("结束任务");
    }
}
第二步:修改spring配置文件

1、在beans增加task支持

xmlns:task="http://www.springframework.org/schema/task"
	xmlns:context=
		http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task-3.0.xsd"
2、配置定时器开关

<task:scheduled-tasks>  
    	<task:scheduled ref="taskJob" method="TaskOne" cron="0/3 * * * * ?"/>
        <!-- <task:scheduled ref="taskJob" method="TaskTwo" cron="0 0 0 * * ?"/> -->
	</task:scheduled-tasks>
到此就配置完成了(spring要开启扫描,扫描到任务接口的包),启动项目之后,以3秒间隔进行定时调用任务接口,如下:


总结:配置多个任务,写多个定时任务接口,在<task:scheduled-tasks>标签里面配置多个

task:scheduled ref="taskJob" method="TaskOne" cron="0/3 * * * * ?"/>即可;“cron=”是指定什么时间启动。常见用法如下:
"0 0 12 * * ?"    每天中午十二点触发 
"0 15 10 ? * *"    每天早上10:15触发 
"0 15 10 * * ?"    每天早上10:15触发 
"0 15 10 * * ? *"    每天早上10:15触发 
"0 15 10 * * ? 2005"    2005年的每天早上10:15触发 
"0 * 14 * * ?"    每天从下午2点开始到2点59分每分钟一次触发 
"0 0/5 14 * * ?"    每天从下午2点开始到2:55分结束每5分钟一次触发 
"0 0/5 14,18 * * ?"    每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发 
"0 0-5 14 * * ?"    每天14:00至14:05每分钟一次触发 
"0 10,44 14 ? 3 WED"    三月的每周三的14:10和14:44触发 
"0 15 10 ? * MON-FRI"    每个周一、周二、周三、周四、周五的10:15触发 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值