首页 > 其他分享 >@Scheduled 定时任务自定义

@Scheduled 定时任务自定义

时间:2024-08-24 09:54:50浏览次数:15  
标签:Scheduled SchedulingConfigurer 自定义 08 2024 Test 定时 now

简介

@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,SchedulingConfigurer,自定义,08,2024,Test,定时,now
From: https://blog.csdn.net/zk_tww/article/details/141311182

相关文章

  • PyQt5 / PySide 2 + Pywin32 自定义标题栏窗口 + 还原 Windows 原生窗口边框特效
    Bug:当窗口不处于顶层时,如果点击窗体试图将其置于顶层,窗体自带的白边框会突然显示,最长两秒。完整性:尚未添加窗口状态的过渡动画和淡入、淡出动画。其他问题:由于Qt官方在版本6去掉了QtWin,目前暂未找到PyQt6/PySide6的解决方案。准备工作:在同目录下放四张照片:m......
  • 注册一种自定义文件类型
     网页端代码<ahref="sppcexe:PI;242700623010">PI配置</a> 类调用    new注册文件类型();=====================================================================操作类:usingMicrosoft.Win32;usingSystem;usingSystem.Diagnostics;publicclass注册文......
  • 应用程自定义协议与序列化反序列化
        本篇将主要介绍在应用层中自定义的协议,自定义协议的同时还需要将我们的数据继续序列化和反序列化,所以本篇的重点为序列化、反序列化的原因以及如何自定义协议,接着探讨了关于为什么tcp协议可以支持全双工协议。还根据用户自定义协议结合tcpsocket编写了一份三......
  • 【pytest】 在启动任务时将自定义参数传入代码中
    1.使用 pytest_addoption 钩子函数你可以在 conftest.py 文件中使用 pytest_addoption 钩子函数来定义自定义命令行参数。然后,你可以在你的测试文件中通过 request fixture来访问这些参数。conftest.py#contentofconftest.pyimportpytestdefpytest_ad......
  • Flutter 自定义日期范围选择组件,使用更加灵活,满足UI设计需要
    一、实现的效果图二、虽然Flutter也为我们提供了日期范围选择组件showDateRangePicker,但是毕竟系统的UI不符合我们的设计风格,所以被迫只能自己实现一个了系统样式三、日历整体实现逻辑其实也很简单,如下:首先获取每个月份具体有多少天int_getMonthDays(DateTimetim......
  • STM32学习记录-05 -1-TIM定时中断
    1TIM简介TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断(如在STM32中主频为72MHz,计72个数即1MHz也就是1us,计72000个数即1KHz也就是1ms)16位计数器、预分频器(对计数器的时钟进行分频)、自动重装寄存器(计数的目标值,计多少个时钟申请中断)的时基单......
  • 在 Monaco Editor 中自定义右键菜单并支持多级菜单
    在MonacoEditor中自定义右键菜单能够提供更灵活的功能选项。以下是如何在MonacoEditor中实现自定义右键菜单,并支持多级菜单的步骤及关键代码示例。1.初始化MonacoEditor实例首先,需要初始化MonacoEditor实例,并设置基本的编辑器配置。constinitEditor=()=......
  • 达梦数据库定时同步数据
    文章目录前言一、DM数据迁移工具1.新建作业2.新建调度3.选择任务4.配置信息5.选择调度6.配置完成二、逻辑备份还原1.环境准备2.新建sh脚本3.编辑sh文件4.编辑Crontab5.查看定时任务6.其他三、相关报错1.创建SOCKET连接失败/网络通讯异常2.导出表对象已存在3.[警告]Er......
  • 自定义安装Nginx
    nginx下载地址:https://nginx.org/download/1.下载wgethttps://nginx.org/download/nginx-1.18.0.tar.gz2.安装依赖yum-yinstallgccgcc-c++makeautomakeautoconfpcrepcre-develzlibzlib-developensslopenssl-devellibtool3.解压tar-vxfnginx-1.18.0.tar.......
  • 自定义安装Mysql版本
    自定义安装Mysql版本mysql下载地址:https://downloads.mysql.com/archives/community/1.下载wgethttps://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar--2024-08-2010:15:39--https://downloads.mysql.com/archives/get/p/23/......