文档章节

spring scheduled定时更新数据库某字段值

p
 pm-road
发布于 2014/12/17 14:55
字数 438
阅读 66
收藏 0

前两天项目中有一个功能是将到期的收费用户自动降成普通用户,这其中便需要更新数据库的字段,一开始我想的是写一个数据库脚本,让期每天定点执行, 后来发现spring 框架就可以完成定时的任务,因为对spring 不是很熟,所以在百度中搜索答案的同时发现两种办法,一种办法就是spring 整合quartz 框架,另一种办法是spring 的注解方法,而我们项目正好全是用的spring 注解方式,所以便采用了spring 的第二种方法,记录下来,以便后期使用:

以下代码转自:http://www.pm-road.com/index.php/2014/07/28/36/

 

1:首先要配置我们的spring.xml,在xmlns 多加下面的内容

 

xmlns:task=”http://www.springframework.org/schema/task”

 

2:然后在xsi:schemaLocation多加下面的内容

 

http://www.springframework.org/schema/task

 

http://www.springframework.org/schema/task/spring-task-3.1.xsd

 

3:最后是我们的task任务扫描注解,我的配置扫描位置是:项目根目录下面的task包

 

<task:annotation-driven/>
<context:annotation-config/>
<bean class=”org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor”/>
<context:component-scan base-package=”task”/>

 

4:在task包下定义接口:IVIPEndTime

 

package task;

 

public interface IVIPEndTime {
/**
* 更新收费用户到期情况
*/
public void updateVipEndTime();
}

 

5:增加实现方法 VIPEndTimeImpl

 

package task;

 

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

 

import service.UserManager;

 

@Component
public class VIPEndTimeImpl implements IVIPEndTime{

 

@Autowired
private UserManager userManager;//该类为user的操作类,需要自己定义
/*
* add by lipeng
* 表示每天的0点进行检查
*
*/
@Scheduled(cron=”0 0 0 * * ? “)
@Override
public void updateVipEndTime() {
userManager.updateVipWhenEndTime();
}

 

}

最终,就可以完成到期收费用户的自动降为普通用户了,而其中涉及了 @Scheduled(cron=”0 0 0 * * ? “)的一些用法,具体链接可参照:http://www.pm-road.com/index.php/2014/07/28/41/

本文转载自:http://rqlipeng.iteye.com/blog/2155087

p
粉丝 6
博文 69
码字总数 638
作品 0
海淀
私信 提问
SpringBoot内置定时任务

springBoot内置定时任务 应用场景 业务监控,定时发送邮件,定时删除缓存等等。 Spring Boot 内置定时 pom 包配置 启动类开启定时 在启动类上面加上@EnableScheduling即可开启定时: 创建定时...

Grittan
2018/10/18
119
1
请问下在负载均衡下定时任务被执行多次这个问题怎么破?

我现在用的定时任务是Spring的@Scheduled,每天凌晨两点会触发一次。现在的问题是,项目正式环境是nginx负载均衡,这个定时任务会被执行两次。我找了一些解决办法,但实现起来都不那么容易,比...

rock_turf
2018/01/09
1K
8
【Spring Boot】23.定时任务

简介 项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息。Spring为我们提供了异步执行任务调度的方式,提供TaskExecutor 、TaskScheduler 接口。 两个...

落花时节又逢卿
2018/12/28
19
0
Spring Boot实践--定时任务两种(Schedule与Quartz整合)

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

spinachgit
2018/02/11
390
0
spring 计划任务@Scheduled之基于单线程池的坑

@Scheduled--spring的定时任务,可以快速创建定时任务;但是它其实是有个不足之处的-----基于单线程池处理任务!!! 多数情况下我们会用它来做数据的定时更新,但是如果某个任务卡死,后面的...

为何不可1995
09/26
41
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部