SpingBoot 使用@Scheduled实现一个定时清理任务

发布时间:2024-11-25 18:11

使用番茄工作法时,设定一个清晰的任务清单。 #生活常识# #时间管理建议# #番茄工作法#

实现定时任务的方法有很多种,@Scheduled注解,scheduleAtFixedRate,timer,quartz等等。

我选择了@Scheduled,相对而言,可以让任务定点执行,并且比较简单。

首先在主类添加注解 @EnableScheduling ,使Scheduled可用。

之后新建一个定时清理类,并实现该类的定时清理方法,在定时清理方法前加上@Scheduled的注解以及corn表达式,corn表达式规定了定时任务的启动时间。以我下文为例,@Scheduled(cron = "0 0 0 * * ?")表示定时任务在每天0点启动,你可以通过 http://cron.qqe2.com/来获取你想要的cron表达式。

以上(加粗&下划线),就是利用@Scheduled实现定时清理任务的方法,很简单吧。如下是我实现的例子,有兴趣可以看一下。

我实现了一个 对于每个No. 如果它在数据库中记录超过50条,那么就进行清理的 定时任务。

首先从表中获取了No.们以及他们出现的次数,由于是使用mybatis进行获取,所以返回了一个map list,对他处理了一下,获得每个No.以及他们出现的次数count,判断若大于50,则清理50以外的部分。

package com.test.service;

import java.util.List;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import com.test.dao.ChangeLogDao;

@Component

public class TimeCleaning

{

@Autowired

private ChangeLogDao ChangeLogDao;

private static final int MAXCOUNT = 50;

@Scheduled(cron = "0 0 0 * * ?")

public void timeCleaning()

{

List<Map<String, Object>> NoCountList = ChangeLogDao.getNoCount();

String No = null;

int Count = 0;

for(Map<String, Object> mapListItem:NoCountList)

{

for(Map.Entry<String, Object> entry:mapListItem.entrySet())

{

if ("COUNT1".equals(entry.getKey()))

{

Count = Integer.parseInt(String.valueOf(entry.getValue()));

}

else if ("caseNo".equals(entry.getKey()))

{

No = String.valueOf(entry.getValue());

}

}

if (Count > MAXCOUNT)

{

ChangeLogDao.delResultChangeLog(No, Count - MAXCOUNT);

}

}

}

}

public List<Map<String, Object>> getNoCount();

public void delResultChangeLog(@Param(value = "No") String No,

@Param(value = "deleteCount") int deleteCount);

网址:SpingBoot 使用@Scheduled实现一个定时清理任务 https://www.yuejiaxmz.com/news/view/271031

相关内容

使用Spring@Scheduled(cron = “0 0/10 * * * ?”) 实现定时任务
Python定时任务,三步实现自动化
利用Python+Flask实现一个TODO任务管理系统网站
Python怎么实现定时任务?python自动化定时方法
使用Redux Toolkit打造任务清单应用实战指南
基于Python+Flask实现一个TODO任务管理系统网站
AppTask: 使用Python实现日常APP任务自动化
如何使用Python实现日常任务的自动化
任务管理的重要性和如何实现高效任务管理?
jbpm的任务管理实现

随便看看