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