简介

@Scheduled 定时任务自定义可以通过SchedulingConfigurer实现。

SchedulingConfigurerSpring Framework 中的一个接口,用于配置定时任务。当你需要对定时任务进行更高级别的定制时,这个接口就显得非常有用。

  • 可以通过SchedulingConfigurer 接口来自定义一些高级配置
  • 可以通过SchedulingConfigurer 自定义执行定时任务的线程池。
  • 可以通过SchedulingConfigurer自定义任务调度器,比如使用 Quartz 或其他调度框架。

实现

创建一个类实现SchedulingConfigurer

@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(10);
scheduler.setThreadNamePrefix("schedule-executor-");
scheduler.initialize();
taskRegistrar.setScheduler(scheduler);
}
}

可以通过 ThreadPoolTaskScheduler 或者 ScheduledExecutorService 来配置线程池

使用

  • 1.启动类添加 @EnableScheduling 注解
  • 2.使用 @Scheduled 注解
    @Scheduled(cron = "0/30 * * * * ?")
public void test(){
log.info("Scheduled Test -- The time is now " + LocalDateTime.now());
}

效果

2024-08-15 20:07:00,014 INFO [schedule-executor-2] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:07:00.014
2024-08-15 20:07:30,004 INFO [schedule-executor-3] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:07:30.004
2024-08-15 20:08:00,010 INFO [schedule-executor-2] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:08:00.010
2024-08-15 20:08:30,014 INFO [schedule-executor-1] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:08:30.013
2024-08-15 20:09:00,016 INFO [schedule-executor-5] com.zk.app.manager.PartitionManager - Scheduled Test -- The time is now 2024-08-15T20:09:00.016

总结

  • SchedulingConfigurer 提供了一个灵活的方式来定制定时任务的执行方式。
  • 可以配置线程池的大小、执行策略等。
  • 通过实现该接口并提供给 Spring,你可以完全控制定时任务的执行环境。
  • 能够根据自己的需求来配置定时任务,确保它们按照预期的方式运行。

结束

@Scheduled 定时任务自定义的更多相关文章

  1. SpringBoot学习18:springboot使用Scheduled 定时任务器

    Scheduled 定时任务器:是 Spring3.0 以后自带的一个定时任务器. 1.在pom.xml文件中添加Scheduled依赖 <!-- 添加spring定时任务 Scheduled ...

  2. scheduled定时任务+实例请求数据库

    1.scheduled定时任务类:ScheduledDemo.java package com.nantian.scheduled; import java.util.Date; import org ...

  3. SpringBoot: 18.使用Scheduled 定时任务器(转)

    Scheduled 定时任务器:是 Spring3.0 以后自带的一个定时任务器. 1.在pom.xml文件中添加Scheduled依赖 <!-- 添加spring定时任务 Scheduled ...

  4. Scheduled定时任务器在Springboot中的使用

    Scheduled定时任务器是Spring3.0以后自带的一个定时任务器. 使用方式: 1.添加依赖 <!-- 添加 Scheduled 坐标 --> <dependency> ...

  5. Spring Boot Scheduled定时任务特性

    SpringBoot中的Scheduled定时任务是Spring Boot中非常常用的特性,用来执行一些比如日切或者日终对账这种定时任务 下面说说使用时要注意的Scheduled的几个特性 Sched ...

  6. 你不知道的Scheduled定时任务骚操作

    目录 一.什么是定时任务 二.项目依赖 三.注解式定时任务 3.1 cron 3.2 fixedDelay 3.3 fixedDelayString 3.4 fixedRate 3.5 fixedRa ...

  7. spring boot注解之@Scheduled定时任务实现

    java实现定时任务一般使用timer,或者使用quartz组件.现在在spring boot提供了更加方便的实现方式. spring boot已经集成了定时任务.使用@Secheduled注解. @ ...

  8. Spring注解@Scheduled定时任务

    一.首先配置applicationContext-task.xml (1)添加 xmlns:task="http://www.springframework.org/schema/task& ...

  9. spring的@Scheduled定时任务,同一时间段的定时任务只会执行一个,其余的会被阻塞,@Scheduled注解定时任务并发执行解决办法,即多线程运行定时任务

    原文:https://blog.csdn.net/qq_35937303/article/details/88851064 现有两个定时任务 @Component("aa") pu ...

  10. Java SpringBoot Scheduled定时任务

    package task.demo.controller; import org.springframework.beans.factory.annotation.Autowired; import ...

随机推荐

  1. 解决安装python各种包速度慢问题

    # 改用清华镜像库 pip install ******* -i https://pypi.tuna.tsinghua.edu.cn/simple

  2. python包学习:-了解

    本节先做一些了解. numpy 参考:NumPy使用 NumPy 教程 NumPy是Python中科学计算的基础包.它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于 ...

  3. Nginx防盗链设置

    原文:https://blog.liuzijian.com/post/e2c56cc3-1002-4f41-aec8-9a69f57e3c3f.html 1.防止盗链 要防止特定路径下的图片被盗链,可 ...

  4. 探秘Transformer系列之(1):注意力机制

    探秘Transformer系列之(1):注意力机制 0x00 概述 因为各种事情,好久没有写博客了,之前写得一些草稿也没有时间整理(都没有时间登录博客和微信,导致最近才发现好多未读消息和私信,在这里和 ...

  5. Flink同步kafka到iceberg(cos存储)

    一.flink到logger 1.source create table source_table ( id bigint comment '唯一编号' ,order_number bigint co ...

  6. 浅说 c++20 cppcoro (三)

    浅说 c++20 cppcoro (三),https://www.cnblogs.com/bbqzsl/p/18679860 接着上一篇浅说 c++20 coroutine (二) ,继续没说完的事. ...

  7. CTFHub技能树-密码口令wp

    引言 仅开放如下关卡 弱口令 通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令. 打开环境,是如下界面,尝试一些弱口令密码无果 利用burpsuite抓包,然后爆破,发 ...

  8. 本地部署DeepSeek后,没有好看的交互界面怎么行!

    大家好,我是晓凡. 写在前面 在前面的文章中手摸手的带小伙伴们在本地部署了DeepSeek.但是,部署完之后,我们要与之交互,只能在命令行中进行. 忘记怎么部署的小伙伴,来这儿复习一下~ 命令行交互如 ...

  9. 【最佳方案】RAG 技术深度剖析及 MaxKB 在企业 AI 落地中的应用策略

    RAG 已经成为 LLM 大语言模型在企业落地的最佳方案,其中主要是因为 RAG 能够解决幻觉问题.时效性问题以及数据安全问题. 解决幻觉问题: LLM 文本生成的底层原理是基于概率的 token b ...

  10. Hadoop - [01] 概述

    Hadoop官网:https://hadoop.apache.org/ Hadoop下载:https://archive.apache.org/dist/hadoop/common/ 一.Hadoop ...