spring定时任务@schedule
2015-11-26 16:19
375 查看
现在项目完成了,希望能够在项目中添加定时任务。比如取微信的accesstoken时,每7000s取一次。具体需要修改的地方如下:
1、在spring配置文件中添加task的声明
2、配置 “异步和定时”的注解
3、新增一个类,用注解component,方法上用注解schedule即可。具体代码如下:
这样就实现了在项目中每隔三秒的定时执行的定时器代码。具体的定时规则可以根据具体的业务具体配置。
上面的定时只能每隔三秒执行一次,如果希望项目每次启动时候执行一次,然后每隔三秒执行一次。那么schedule的配置时间表达式如下:
而且fixedRate 还有一个作用就是当前线程执行完成后才开始下一个任务开始。具体详见日志:
日志说明了线程是每隔五秒后才执行了下一次的定时,而不是每隔三秒就执行。
1、在spring配置文件中添加task的声明
xmlns:task="http://www.springframework.org/schema/task" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
2、配置 “异步和定时”的注解
<!-- 异步和定时 --> <task:annotation-driven/>
3、新增一个类,用注解component,方法上用注解schedule即可。具体代码如下:
package com.ciji.zzaclient.schedule; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import com.ciji.zzaservice.service.RegisterService; @Component public class ScheduleSpringTest { @Autowired RegisterService registerService ; @Scheduled(cron ="0/3 * * * * ?") public void updateWeixinAccessToken(){ System.out.println("我在定时执行。。。"+ registerService.selectByPk(44)); } }
这样就实现了在项目中每隔三秒的定时执行的定时器代码。具体的定时规则可以根据具体的业务具体配置。
上面的定时只能每隔三秒执行一次,如果希望项目每次启动时候执行一次,然后每隔三秒执行一次。那么schedule的配置时间表达式如下:
@Scheduled(fixedRate = 1000*3) public void updateWeixinAccessToken(){ System.out.println("我在定时执行。。。"); Thread.sleep(5000); System.out.println(System.currentTimeMillis()); }
而且fixedRate 还有一个作用就是当前线程执行完成后才开始下一个任务开始。具体详见日志:
我在定时执行。。。 1452155492058 我在定时执行。。。 1452155497058 我在定时执行。。。
日志说明了线程是每隔五秒后才执行了下一次的定时,而不是每隔三秒就执行。
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- struts2 spring整合fieldError问题
- Cocos2d-x Schedule定时器的使用实例
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)
- Spring Bean基本管理实例详解
- java实现简单美女拼图游戏
- java基本教程之线程休眠 java多线程教程
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- spring boot实战之内嵌容器tomcat配置
- 基于Spring框架的Shiro配置方法
- Spring MVC中上传文件实例
- spring aop两种配置方式
- 实例讲解Java的Spring框架中的AOP实现
- Java的Spring框架的三种连接池的基本用法示例