首页 > 其他分享 >Spring Task定时执行

Spring Task定时执行

时间:2024-07-08 16:41:02浏览次数:18  
标签:Task orderMapper orders1 Spring LocalDateTime import 定时 now Orders

在项目中,我们时常会遇到需要定时去自动执行一串代码的需求

具体实现

Spring 3.0已经包含了它的坐标 spring-context

第一步, 启动类添加@EnableScheduling开启定时执行

第二步,创建定时任务类

package com.sky.task;

import com.sky.entity.Orders;
import com.sky.mapper.OrderMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;

@Component
@Slf4j
public class OrderTask {
@Resource
private OrderMapper orderMapper;
@Scheduled(cron = "0 * * * * ? ")
public void OrderPayTimeOut(){

    LocalDateTime localDateTime=LocalDateTime.now().plusMinutes(-15);
    List<Orders>orders= orderMapper.selectTimeOut(Orders.PENDING_PAYMENT,localDateTime);
    orders.forEach(orders1 -> {
        orders1.setCancelTime(LocalDateTime.now());
        orders1.setStatus(Orders.CANCELLED);
        orders1.setCancelReason("订单超时");
        log.info("订单超时{}",orders1);
        orderMapper.update(orders1);
    });
}
@Scheduled(cron = "0 0 3 * * ? ")

public  void OrderSureTimeOut(){
    log.info("zhengzaizhixing2");
    List<Orders>orders= orderMapper.selectTimeOut(Orders.DELIVERY_IN_PROGRESS,LocalDateTime.now());
    orders.forEach(orders1 -> {
        orders1.setCancelTime(LocalDateTime.now());
        orders1.setStatus(Orders.COMPLETED);
        orders1.setCancelReason("订单确认超时,自动确认");
        log.info("订单确认超时{}",orders1);
        orderMapper.update(orders1);
    });
}

}

标签:Task,orderMapper,orders1,Spring,LocalDateTime,import,定时,now,Orders
From: https://www.cnblogs.com/fubai/p/18290278

相关文章

  • 使用 Spring Boot 结合安全框架增强支付系统的安全加固
    使用SpringBoot结合安全框架增强支付系统的安全加固随着电子支付的普及,支付过程的安全性变得至关重要。支付系统需要保护用户的敏感信息,防止数据泄露和恶意攻击。为了提高支付过程的安全性,我们可以使用SpringBoot3.x结合安全框架(如SpringSecurity)来增强支付系统的安全性......
  • SpringBoot集成Kafka快速启动示例
    源码地址:https://github.com/ghdefe/kafka-demokafka消息发送接收示例1.启动kafka实例cat<<EOF>docker-compose.ymlversion:"2"services:zookeeper:image:docker.io/bitnami/zookeeper:3.8ports:-"2181:2181"-"......
  • spring为什么使用三个缓存解决循环依赖
    使用三个缓存(singletonObjects,earlySingletonObjects,singletonFactories)来解决循环依赖问题,主要是为了确保Bean的正确创建和初始化流程,同时避免死锁和无限递归的情况。下面是使用三个缓存的好处和必要性:确保Bean的正确创建:singletonFactories缓存中保存的是Bean的工厂对象,这......
  • spring三级缓存解决循环依赖原理
    在Spring框架中,Bean的实例化和管理是通过其核心的IoC容器完成的。在处理Bean的依赖注入时,可能会遇到循环依赖的问题,即两个或多个Bean相互引用对方。为了解决这一问题,Spring采用了三级缓存机制。一级缓存:singletonObjects这是SpringIoC容器中的主要缓存,用于存放已经创建并完全初......
  • 不定时修改Linux服务器端口和密码
    最近总是不想动,服务器的安全又不得不考虑,有时候还会忘记修改服务器的端口和密码,就诞生了下面的Shell脚本。脚本包含了日志记录,备份SSH文件,修改SSH端口,修改SSH密码,更新防火墙、发送加密邮件,设置定时任务。脚本目前只在Ubuntu系统测试,其它系统未测试,以下标红的信息一定要看。注意......
  • 免费分享一套SpringBoot+Vue超市(进销存,收银,积分)管理系统【论文+源码+SQL脚本】,帅呆
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue超市(进销存,收银,积分)管理系统,分享下哈。项目介绍本论文设计并实现了一套基于SpringBoot、Vue和MySQL的超市管理系统。该系统旨在通过现代化的Web应用技术提升超市管理效率和用户体验。首先,通过详细的需求分析和功......
  • Spring Boot Vue 毕设系统讲解 3
    目录项目配置类项目中配置的相关代码springBoot拦截器相关知识一、基于URL实现的拦截器:二、基于注解的拦截器三、把拦截器添加到配置中,相当于SpringMVC时的配置文件干的事儿:项目配置类项目中配置的相关代码首先定义项目认证授权拦截器  AuthorizationIntercep......
  • java springboot监听事件和处理事件
    在SpringBoot中,监听和处理事件是一种常用的模式,用于在应用程序的不同部分之间传递信息。Spring的事件发布/订阅模型允许我们创建自定义事件,并在这些事件发生时由注册的监听器进行处理。这里,我将提供一个简单的SpringBoot应用程序示例,其中将包括事件的定义、事件的发布以及事件......
  • Spring Framework
    SpringFramework一、Spring和SpringFramework的关系Spring指的是Spring技术栈,是一个全家桶。包括SpringFramework、SpringMVC、SpringBoot、SpringCloud、SpringData、SpringSecurity等。这些框架构成了Spring,其中SpringFramework是其他子框架的基础SpringFra......
  • javab毕业设计-基于Java的校园二手交易商城系统设计与实现,基于springboot+vue二手跳蚤
    文章目录背景介绍演示视频(进入B站观看画面更清晰):项目架构和内容获取(文末获取)部分功能展示用户前端系统管理后台项目相关文件为什么我?本章节给大家带来的是一个基于java的大学生二手交易平台系统设计与实现,可适用于校园二手交易系统,基于Java的二手交易商城系统,大学......