当前位置: 首页 > 知识库问答 >
问题:

如何在spring中使用@Schedured注释

李泓
2023-03-14
package com.test.logic;
import java.io.File;
import java.util.Date;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.sun.xml.internal.ws.developer.SchemaValidation;

@Component
@EnableScheduling
public class VideoDelete {
    @Scheduled(cron="* 1-15 16 * * * *")
    public void deleteVideo(){
    System.out.println("========> $$$$$$ scheduler method is executed $$$$$ <==========");
        long presentTime=System.currentTimeMillis();
        Date presentDate=new Date(presentTime);
        File file=new File("E://videorecording1");
        File[] fileList=file.listFiles();
        for (File files : fileList){
            if (files.isFile()){
                long filecreatedtime=files.lastModified();
                Date fileDate=new Date(filecreatedtime);
                long difference = presentDate.getTime() - fileDate.getTime();
                long hoursDifference = difference / (60 * 60 * 1000);
                if(hoursDifference >= 72)
                    files.delete();
            }
        }
}
}

共有1个答案

卫松
2023-03-14

Spring Scheduler的cron只允许6种触发器。来自官方文档:

一个类似cron的表达式,扩展了通常的un*x定义,包括第二个触发器*以及分钟、小时、月中的一天、月中的一天和周中的一天。

为了能够支持7个触发器(包括年份),您必须使用Quartz:https://www.quartz-scheduleer.org/在当前的情况下,请尝试以下操作:

(cron = "0 0 16 * * ?")
 类似资料:
  • 我目前正在做一个项目,在这个项目中我使用了spring functional web编程。我通常在restController中使用swagger 2的注释,但是对于函数式web编程,我找不到在哪里!告诉应用程序搜索endpoint(如Docket中的basepackage)并在html页面中加载swagger的地方。以下是我的代码: 配置类: 依赖项: 结果是:

  • 有没有可能在科特林做类似跟随的事情?

  • 在我的项目中,我有一些重构逻辑的公共接口。看起来是这样的: 然后,当我需要编写一些重构时,我用方法实现这个接口,标记类,如组件,Spring-in-loop评估每个接口实现并将其注册到数据库中。但是我们有很多重构(每年有200-300个新的)。很难手动禁用旧的实现,我们在spring上下文中有很多bean。我们可以做些什么吗,例如,使用一些注释-这将在某些条件下禁用组件创建? 例如: 此注释的工作

  • 问题内容: 如何在Spring中使用@Value批注将值从属性文件注入Map中? 我的Spring Java类是我尝试使用$,但收到以下错误消息 无法自动装配字段:私有 嵌套异常是:无法解析字符串值中的占位符 我在.properties文件中具有以下属性 问题答案: 我相信Spring Boot支持使用注释开箱即用地加载属性映射。 根据该文档,你可以加载属性: 像这样变成豆子: 我之前使用过@Co

  • pom.xml 如果我从库代码中删除Autowired并正常创建对象(使用new关键字),一切都很好。所以我的问题是,为了使用注释,需要带有@SpringBootApplication的Main类,没有Main类我们不能运行它吗?