iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot 任务调度动态设置方式(不用重启服务)
  • 721
分享到

SpringBoot 任务调度动态设置方式(不用重启服务)

2024-04-02 19:04:59 721人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录SpringBoot 任务调度动态设置1.初始化入口(注解 @PostConstruct)2.任务调度类springBoot 调度任务1.首先需要用@EnableScheduli

SpringBoot 任务调度动态设置

1.初始化入口(注解 @PostConstruct)


@PostConstruct
private void initTimedTask() {
    //初始化任务调度器cron,可以从数据库中查询到cron值
    List<Tweek> tweeks=tweekService.listAll(new Tweek());
    String cron=tweeks.get(0).getCron();
    if("".equals(cron)){
    }else{
        //启动
        setTaskTimedCron(cron);
    }
}
TimedTask taskt;
public void setTaskTimedCron(String cron) {
    if (null == taskt) {
        taskt= new TimedTask ();
    }
    taskt.restart(cron);
}

2.任务调度类


public class TimedTask implements Runnable{
    Logger logger = Logger.getLogger(TimedTask .class);
    private ThreadPoolTaskScheduler threadPoolTaskScheduler;
    @Override
    public void run() {
    
        logger.info("每月最后一天定时发送彩信任务启动准备发送!");
        //业务逻辑
    }
    
    public void restart(String cron) {
        if (null != this.threadPoolTaskScheduler) {
            ScheduledExecutorService scheduledExecutorService = this.threadPoolTaskScheduler.getScheduledExecutor();
            if (!scheduledExecutorService.isshutdown()) {
                scheduledExecutorService.shutdownNow();
            }
            this.threadPoolTaskScheduler.destroy();
        }
        if (null != cron&& cron.trim().length() > 0) {
            this.threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
            this.threadPoolTaskScheduler.setThreadNamePrefix("timedTask ");
            this.threadPoolTaskScheduler.initialize();
            this.threadPoolTaskScheduler.schedule(this, new CronTrigger(cron));
        }
    }
}

SpringBoot 调度任务

1.首先需要用@EnableScheduling

注解到*applicatin.java,用来检测是否有调度任务。

2.@Scheduled 注解用于标注

这个方法是一个定时任务的方法。Spring会自动扫描这个注解,启动调度任务。


package com.david.translate.quartz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.david.translate.service.SysUserService;
@Component
public class TimeQuartz {
    @Autowired
    private SysUserService userService;
    
    @Scheduled(cron="0 0/1 * * * ?") 
    public void executeFileDownLoadTask() {
        System.out.println(">>>>>>>>>>>>>>>>>>>任务执行 "+userService.findAll().size());
    }
}

调度任务的时间配置用的是cron表达式,推荐一个在线生成表达式的网站,如果自己不会写或者不愿意自己写,可以用这个网站直接生成:

Http://cron.qqe2.com/

截图如下:

这里写图片描述

一些常用的任务表达式

例子:

  • 0 * * * * ? 每1分钟触发一次
  • 0 0 * * * ? 每天每1小时触发一次
  • 0 0 10 * * ? 每天10点触发一次
  • 0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
  • 0 30 9 1 * ? 每月1号上午9点半
  • 0 15 10 15 * ? 每月15日上午10:15触发
  • /5 * * * ? 每隔5秒执行一次
  • 0 /1 * * ? 每隔1分钟执行一次
  • 0 0 5-15 * * ? 每天5-15点整点触发
  • 0 0/3 * * * ? 每三分钟触发一次
  • 0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
  • 0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
  • 0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
  • 0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
  • 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
  • 0 0 12 ? * WED 表示每个星期三中午12点
  • 0 0 17 ? * TUES,THUR,SAT 每周二、四、六下午五点
  • 0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发
  • 0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
  • 0 0 23 L * ? 每月最后一天23点执行一次
  • 0 15 10 L * ? 每月最后一日的上午10:15触发
  • 0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发
  • 0 15 10 * * ? 2005 2005年的每天上午10:15触发
  • 0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发
  • 0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: SpringBoot 任务调度动态设置方式(不用重启服务)

本文链接: https://www.lsjlt.com/news/156039.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot 任务调度动态设置方式(不用重启服务)
    目录SpringBoot 任务调度动态设置1.初始化入口(注解 @PostConstruct)2.任务调度类SpringBoot 调度任务1.首先需要用@EnableScheduli...
    99+
    2024-04-02
  • SpringBoot Schedule调度任务的动态管理
    目录前言一、架构流程图二、代码实现流程1.引入库2.代码流程前言 定时任务动态管理分为两种方式: 方式一:Web前台配置Trigger触发器(关联Cron)、ThreadPoolTa...
    99+
    2023-02-25
    SpringBoot Schedule SpringBoot Schedule动态管理任务
  • springboot怎么动态创建任务调度
    在Spring Boot中动态创建任务调度可以使用Spring的TaskScheduler接口来实现。TaskScheduler接口...
    99+
    2023-10-20
    springboot
  • SpringBoot 调度任务及常用任务表达式
    首先需要用@EnableScheduling注解到*applicatin.java,用来检测是否有调度任务。@Scheduled 注解用于标注这个方法是一个定时任务的方法。Spring会自动扫描这个注解,启动调度任务。package com...
    99+
    2023-05-30
    spring boot 调度
  • SpringBoot Schedule调度任务的动态管理方法是什么
    这篇文章主要介绍了SpringBoot Schedule调度任务的动态管理方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot Schedule调度任务的动态管理方法...
    99+
    2023-07-05
  • SpringBoot如何设置动态定时任务
    这篇文章主要介绍了SpringBoot如何设置动态定时任务的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot如何设置动态定时任务文章都会有所收获,下面我们一起来看看吧。之前写过文章记录怎么在Sp...
    99+
    2023-07-02
  • SpringBoot设置动态定时任务的方法详解
    之前写过文章记录怎么在SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太灵活。 经过...
    99+
    2024-04-02
  • Springboot自带定时任务实现动态配置Cron参数方式
    目录Springboot自带定时任务实现动态配置Cron参数SpringBoot定时任务的四种实现方式(主要)spring动态配置cron表达式,不需要停服SchedulingCon...
    99+
    2024-04-02
  • SpringBoot动态Feign服务调用详解
    目录1.Feign传统方式的不足2.动态Feign2.1.服务生产者2.2.动态Feign2.3.服务消费者3.总结1.Feign传统方式的不足 ①.在微服务架构中,当我们使用Fei...
    99+
    2022-12-21
    SpringBoot动态Feign SpringBoot动态Feign服务调用
  • Python使用定时调度任务的方式
    目录1、简单循环 Simple loops2、简单循环但是使用了线程Simple loops but threaded3、定时调度库 Schedule Library4、Python...
    99+
    2024-04-02
  • 阿里云服务器设置自动重启怎么设置不了
    如果您无法自动重启您的云服务器,请检查以下步骤: 确认您的操作系统和云服务器软件是否与阿里云官方网站提供的一致。如果官方网站提供的不一致,可能会导致您的操作系统和软件无法自动重启。 确认您的云服务器软件是否已启用云服务器自动重启功能。如...
    99+
    2023-10-27
    阿里 重启 设置自动
  • 设置mysql服务开机不启动的方法
    这篇文章主要介绍了设置mysql服务开机不启动的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。设置mysql开机不启动的方法:1、鼠标右击“...
    99+
    2024-04-02
  • Springboot 内部服务调用方式
    目录Eureka注册的服务之间互相调用1.请求方2.接收方多模块化,服务间调用的坑问题背景解决办法Eureka注册的服务之间互相调用 1.请求方 启动类添加注解,扫描Eureka 中...
    99+
    2024-04-02
  • 使用celery怎么动态设置定时任务
    使用celery怎么动态设置定时任务?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。celery的beat运行过程。上图是beat的主要组成结构,beat中包含了...
    99+
    2023-06-08
  • SpringBoot实现固定、动态定时任务 | 三种实现方式
    前言: 阅读完本文:🐱‍👓 知晓 SpringBoot 用注解如何实现定时任务明白 SpringBoot 如何实现一个动态定时任务 (与数据库相关联实现)理解 SpringBoot 实现设置时间执行定时任务 ...
    99+
    2023-10-01
    spring boot java mybatis
  • 阿里云服务器设置自动重启
    如果您的阿里云服务器配置为自动重启,可以按照以下步骤进行操作: 确定重启选项:首先,选择“服务器配置”,点击“自动重启”选项,以确保您的服务器配置生效。 输入重启时间:在服务器配置中,您可以填写重启的时间。重启时间越长,重启成功的可能性...
    99+
    2023-10-26
    阿里 重启 设置自动
  • 亚马逊服务器如何设置启动方式
    亚马逊服务器(AWS)提供了多种启动方式,包括手动启动、自动启动和按需启动。以下是每种启动方式的详细说明: 手动启动:手动启动是最基本的启动方式,您可以手动启动或停止实例。这种方式适用于需要手动控制实例启动和停止的情况,例如测试和开发环...
    99+
    2023-10-27
    亚马逊 如何设置 方式
  • 如何设置云服务器自动重启
    要设置云服务器自动重启,你可以按照以下步骤进行操作:1. 登录到云服务器的管理控制台。2. 找到你想要设置自动重启的服务器实例,并点...
    99+
    2023-09-25
    云服务器
  • 云服务器自动重启怎么设置
    要设置云服务器自动重启,可以按照以下步骤进行操作:1. 登录云服务器控制台。2. 找到需要设置自动重启的服务器实例,并点击其名称进入...
    99+
    2023-09-16
    云服务器
  • spring动态设置定时任务的方法是什么
    在Spring中,可以使用`TaskScheduler`接口和`@Scheduled`注解来动态设置定时任务。1. 使用`TaskS...
    99+
    2023-08-25
    spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作