文档章节

spring定时任务初体验

another_yu
 another_yu
发布于 2015/11/25 16:36
字数 458
阅读 93
收藏 6

定时任务很简单,就是设置某个时间点,或者是每隔一段时间执行的任务。


我是通过spring注解来配置的,下面记录下配置过程:

首先要做的是添加命名空间及描述:

xmlns:task="http://www.springframework.org/schema/task"    <!-- 这个放在xmlns后面 -->
<!-- 下面这两个加到 xsi:schemaLocation 里 -->
    http://www.springframework.org/schema/task  
    http://www.springframework.org/schema/task/spring-task-3.1.xsd

然后启用注解:

        <!-- 启用注解 -->  
	<context:annotation-config/> 
	<context:component-scan base-package="com"/>  <!-- 自动扫描com开头的包的注解-->
        <aop:aspectj-autoproxy/>  <!-- 切面编程,自动搜找-->
	<task:annotation-driven/>   <!-- 开启定时器注解 -->

其他application.xml就和以前的一样,这样配置之后就能使用注解来声明一个定时器任务了。


然后创建定时器类:

新建一个包:com.erongdu.shopping.timer

在底下创建一个类:CountOrdersJob.java

package com.erongdu.shopping.timer;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class CountOrdersJob {
    
	@Scheduled(cron="*/50 * * * * ?" )
	public void doCountOrders(){
	      System.out.println("这里是具体执行的函数体");
	}
}

这是简单的框架,我自己的定时任务太乱就不贴出来了,我提下注意点,

1.类体上要打上@Component标注,声明是spring的组件

2.在具体的定时任务方法上打上@Scheduled

3.@Scheduled的属性(自己可以在标注后面按 alt+/ 弹出提示):

cron:指定cron表达式

fixedDelay:官方文档解释:An interval-based trigger where the interval is measured from the completion time of the previous task. The time unit value is measured in milliseconds.即表示从上一个任务完成开始到下一个任务开始的间隔,单位是毫秒。

fixedRate:官方文档解释:An interval-based trigger where the interval is measured from the start time of the previous task. The time unit value is measured in milliseconds.即从上一个任务开始到下一个任务开始的间隔,单位是毫秒

4.cron表达式:http://jason.hahuachou.com/

                              http://www.cnblogs.com/sunjie9606/archive/2012/03/15/2397626.html




© 著作权归作者所有

another_yu
粉丝 4
博文 17
码字总数 4285
作品 0
杭州
程序员
私信 提问
Spring Boot实践--定时任务两种(Schedule与Quartz整合)

Spring Boot实践--定时任务两种(Schedule与Quartz整合) 最近在项目中使用到定时任务,之前一直都是使用Quartz 来实现,最近看Spring 基础发现其实Spring 提供 Spring Schedule 可以帮助我们实...

spinachgit
2018/02/11
392
0
Spring Boot:在Spring Boot中使用定时任务

本文主要介绍如何在Spring Boot中使用定时任务,假设你已经建好了一个基础的Spring Boot项目。首先,我们在项目中建立一个定时任务。 1.创建定时任务 package hello;import java.text.Simpl...

Element0506
2015/11/10
486
0
崛起于Springboot2.0.X之集成Quartz定时调度(29)

下面是两种方法定时任务,一个是集成quartz,另外一个是spring自带的定时任务,后者更简单一些。 该博客为入门级博客,如果想要查看企业使用Quartz场景,点击 --> 手动操作定时任务 1、pom依...

木九天
2018/07/24
4K
0
Spring整合quartz实现定时器

第一步:引入依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.1.0</version> </dependency> 注意:Spring3.1以下的版本必须使用qua......

嘴角轻扬30
01/04
25
0
spring boot实现动态增删启停定时任务

在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务...

jessehua
04/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
43
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部