`

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

阅读更多

前两天项目中有一个功能是将到期的收费用户自动降成普通用户,这其中便需要更新数据库的字段,一开始我想的是写一个数据库脚本,让期每天定点执行, 后来发现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/

分享到:
评论

相关推荐

    spring动态配置定时任务

    本文将深入探讨如何在Spring中实现这种动态配置,以及如何结合数据库来管理和更新这些定时任务。 首先,Spring提供了`@Scheduled`注解来创建定时任务。在类或方法上使用这个注解,可以定义一个定时执行的任务。例如...

    详解SpringBoot 创建定时任务(配合数据库动态执行)

    在数据库表中更新任务执行周期后,定时任务的执行器可以通过查询该表来获取最新的执行周期,并据此重新安排任务的执行。 应用配置文件(如application.yml)中需要配置数据库的相关信息,包括数据源URL、用户名和...

    Spring 框架自带定时任务和Quartz定时任务

    在IT行业中,定时任务是常见的一种需求,它允许程序在特定时间或按照一定周期自动执行某些操作,比如发送邮件、进行数据统计、更新系统状态、推送消息、开启活动或创建增量索引等。目前,主要有两种方式可以实现定时...

    springboot maven动态向数据库添加定时任务demo,执行相应程序(结合数据库操作)

    当需要添加或删除定时任务时,只需在数据库中进行相应的操作,`SchedulerService`会自动根据数据库中的状态更新任务。这种方式使得任务的管理变得灵活,无需每次改动都需要重新部署应用。 通过这个示例,我们可以...

    spring-boot-scheduled-task.zip

    这个名为"spring-boot-scheduled-task.zip"的压缩包很可能包含了一个完整的Spring Boot项目,用于演示或实践如何配置和使用Spring Boot的定时任务功能。在这个项目中,我们可以预期看到以下几个关键知识点: 1. **...

    利用Spring定时发送email

    在Spring框架中,定时任务是通过Spring Task模块实现的,它可以让我们轻松地配置和执行定时任务,例如定时发送电子邮件。这个"利用Spring定时发送email"的项目,包含了完整的jar包并经过测试,确保了功能的可行性。...

    踩坑–Springboot之Scheduled定时执行insert into …select联合语句

    在本文中,我们将深入探讨如何在Spring Boot应用中利用`@Scheduled`注解来实现定时任务,特别是执行复杂的`INSERT INTO SELECT` SQL语句。在PostgreSQL数据库中,如果需要进行定时任务,通常需要借助像pgAgent这样的...

    直接配置执行定时任务的一整套方法

    1. **设计任务表**:创建一个数据库表来存储定时任务的信息,包括任务ID、任务名称、执行频率、下次执行时间、任务状态等字段。 2. **插入任务**:在需要添加新定时任务时,通过编程方式向任务表中插入一条记录,...

    spring定时器

    假设我们需要开发一个简单的定时任务,每分钟检查数据库中的新消息,并通过邮件通知用户。 **Step 1:配置Spring容器** ```xml &lt;!-- spring-mvc.xml --&gt; &lt;beans xmlns="http://www.springframework.org/schema/...

    利用springboot-mybatis实现定时邮件的发送

    在本项目中,我们主要探讨如何使用Spring Boot和MyBatis框架来实现在MySQL数据库中的定时任务,以发送生日祝福邮件。Spring Boot以其简洁的配置和强大的功能深受开发者喜爱,而MyBatis作为轻量级的持久层框架,能够...

    定时任务cron表达式生成.rar

    Spring框架则通过`@Scheduled(cron = "cron表达式")`,将方法标记为定时任务,根据给定的cron表达式自动执行。 使用这个“定时任务cron表达式生成”工具,用户可以直观地设置任务的执行频率,而无需手动编写复杂的...

    Spring Boot实现简单的定时任务

    这个例子展示了如何利用Spring Boot的定时任务特性以及MyBatis进行数据库操作,以实现每分钟检查并更新联盟优惠活动状态的简单定时任务。通过这种方式,开发者可以根据项目需求轻松地扩展和调整定时任务,以满足各种...

    pro spring

    书中介绍了如何使用Spring的`@Scheduled`注解来定义定时任务,以及如何配置任务调度器。 综上所述,《Pro Spring》这本书全面而深入地介绍了Spring框架的各项技术细节,适合于各个层次的Java开发者阅读。无论是初学...

    spring_mvc注解总结

    14. **@Scheduled(cron="")**: 这是Spring提供的定时任务注解,允许开发者使用cron表达式定义任务执行计划。 以上就是Spring MVC中的一些主要注解及其用途,掌握这些知识可以帮助开发者更加高效地利用Spring MVC...

    从Ftp服务器定时下载文件 并对文件解析

    其次,定时下载任务通常由任务调度器来执行,如Quartz或Spring的Scheduled Tasks。在Quartz中,你可以定义一个Job类来实现文件下载和解析的逻辑,然后创建一个Trigger来决定何时触发这个Job。在Spring中,可以通过...

    SpringBoot集成任务调度,实现每天定时发送天气预报

    SpringBoot通过集成SpringFramework中的@Scheduled注解来实现任务的定时调度。@Scheduled注解支持cron表达式,这允许开发者以非常灵活的方式定义任务执行的具体时间点和频率。 #### cron表达式 cron表达式由六或七...

    -Springboot结合疫情情况的婚恋系统.zip

    同时,为了保证数据的时效性,可以定时更新这些数据,这里可以使用Spring Boot的Scheduled任务功能。 数据库层面,Spring Data JPA简化了数据库操作。我们可以定义实体类,通过注解声明字段与数据库表之间的映射...

    springboot+quartz +mysql 核心代码

    在Spring Boot项目中,我们可以轻松集成各种服务,如数据库连接、定时任务等。 Quartz是一个开源的作业调度框架,它允许你在Java应用中创建和管理定时任务。Quartz支持复杂的调度策略,如CRON表达式,可以灵活地...

    day10-订单状态定时处理、来单提醒和客户催单

    在本节内容中,我们将详细介绍如何利用Spring框架中的`Spring Task`功能来实现订单状态的定时处理。这包括对支付超时订单以及长时间处于派送中的订单进行自动化管理。 ##### Spring Task介绍 `Spring Task`是...

Global site tag (gtag.js) - Google Analytics