Java tomcat 使用spring-task,实现定时任务功能

前言

今天接触到一个需求,需要添加一个定时任务功能,第一反应是启动类@EnableScheduling、定时任务方法使用@Scheduled实现,导入项目后才发现,这个项目是ssm整合框架的tomcat项目,没有启动类, 于是改变了思路,找到Spring-MVC的配置,文件名为spring-servlet.xml,在里面配置扫描包,最终测试成功。


1、编写定时任务功能

java 复制代码
package com.ats.imageRetrieval.web.task;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

/**
 * @author qyl
 * @date 2024/02/04
 */
@Slf4j
@Configuration
@EnableScheduling
public class MyTask {
    /**
     * 参数
     */
    @Value("${task.name}")
    private String name;


    /**
     * 定时任务入口
     */
    @Scheduled(cron = "${task.corn:0 0/2 * * * *}")
    public void execute() {
        log.info("定时任务开始");
        // TODO:业务处理
        log.info("开始处理 name:{}...........", name);
        log.info("定时任务开始完成");
    }
}

2、配置文件添加定时任务相关

定时任务执行时间,cron表达式,0/30 * * * * * 即每隔30s

task.corn=0/30 * * * * *

定时任务参数

task.name=test

3、修改spring-servlet.xml

Spring-MVC的配置,文件名为spring-servlet.xml,配置扫描包

4、查看结果

相关推荐
ps酷教程4 小时前
Jackson 解决没有无参构造函数的反序列化问题
java
NiceCloud喜云4 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
AI玫瑰助手4 小时前
Python函数:默认参数的定义与注意事项
开发语言·python·信息可视化
油炸自行车4 小时前
Claude Code 错误:API Error: 400 Failed to deserialize the JSON body into the
开发语言·javascript·json·trae·claude code·api error 400
肩上风骋5 小时前
C++14特性
开发语言·c++·c++14特性
_日拱一卒5 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
隔窗听雨眠5 小时前
Nginx网关响应慢排查手记
java·服务器·nginx
智慧物业老杨5 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
源码宝6 小时前
MES系统源码:Java8 + SpringBoot2.7 + MySQL8 + Redis,后端源码清爽易扩展
java·后端·源码·springboot·mes系统·源码二开·mes源码
JAVA社区6 小时前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展