首页 > 数据库 >Springboot设置定时任务,从数据库中获取cron表达式 DEMO

Springboot设置定时任务,从数据库中获取cron表达式 DEMO

时间:2023-01-09 13:56:06浏览次数:44  
标签:Springboot DEMO 数据库 springframework cron import scheduling org

适用场景:需要在项目运行时改动定时任务执行时间,可将cron表达式放在缓存或者数据库中

代码如下:(省略了获取cron的方法,需要自己根据情况获取)

 

import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;

import java.time.LocalTime;
import java.util.Date;

/**
* @ClassName: TaskDemo
* @desc:
* @authoer: demo
* @create: 2022/6/17 13:56
*/
@Component
@EnableScheduling
public class TaskDemo implements SchedulingConfigurer {

public static String cron;

@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
//项目启动时候,会在这里执行一次,从数据库拿到数据库
cron = "0 0/1 * * * ?";
Runnable task = () -> {
System.out.println("任务逻辑代码执行:" + LocalTime.now());
};
Trigger trigger = (triggerContext) -> {
//任务触发 ,每次触发都会执行这里面的方法一次,重新获取下一次的更新时间
cron = "0 0/2 * * * ?";
CronTrigger cronTrigger = new CronTrigger(cron);
Date nextExec = cronTrigger.nextExecutionTime(triggerContext);
return nextExec;
};
scheduledTaskRegistrar.addTriggerTask(task,trigger);
}

  

标签:Springboot,DEMO,数据库,springframework,cron,import,scheduling,org
From: https://www.cnblogs.com/csnjava/p/17036815.html

相关文章

  • 从一个 Demo 说起 Dubbo3
    简介2017年的9月份,阿里宣布重启Dubbo的开发维护,并且后续又将Dubbo捐献给了Apache,经过多年的发展已经发布到3.X版本了,Dubbo重启维护之后是否有值得我们期待的功能呢,下面就......
  • 017 跨域问题-从springboot后台解决
    解决跨域问题:创建对应的包packagecom.example.adminspringboot.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.anno......
  • 新建springboot项目步骤
    1、file->new->project->springinitializr    打开pom.xml,换成ali源,快一些<repositories><repository><id>aliyun-repos</id>......
  • Springboot 非Web项目设置
    1使用场景有一个项目需要监听一个端口获取数据,这时候就不需要启动web环境了。但是又希望可以用Springboot比较方便。2具体实现在配置文件中加入:点击查看代码spr......
  • SpringBoot主键回显
    1、背景:在向数据库插入数据时,在主键自增时不需要主键字段,但是接下来还需主键进行其它操作2、实现:实体类:publicclassUser{privateintuserId;privateStr......
  • 【linux】crontab使用方法
    一、crontab基本用法1.1cron服务cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。servicecrondstart//启动服务servicecrondstop......
  • SpringBoot——动态数据源(多数据源自动切换)
    前言日常的业务开发项目中只会配置一套数据源,如果需要获取其他系统的数据往往是通过调用接口,或者是通过第三方工具比如kettle将数据同步到自己的数据库中进行访问。 但......
  • Springboot使用不了jsp的一些bug
    因为在SpringBoot中不推荐使用JSP作为动态页面,我们要想使用JSP编写动态页面,需要手动添加webapp目录。形成这个样子就算成功了(不必须有web.xml) 由于SpringBoot自带tomca......
  • 实现分页几种常见方式(SpringBoot)
    实现分页作用:分页展示,减少数据的处理量封装一个MyBatisUtils工具类一、直接使用sql中的关键字limit(物理分页)使用Mybatis实现分页,核心仍为SQL写mybatis的接口UserMap......
  • VsCode新建Java、SpringBoot、Python、JavaWeb项目的基本步骤
    新建Java项目选中正上方的搜索框,按下F1快捷键,输入createJava,即可出现这样的一个命令:选中这个:然后为新创建的项目选择一个合适的位置就好啦!新建SpringBoot项目选中......