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

@Scheduled 定时任务自定义

时间:2024-08-15 20:28:45浏览次数:8  
标签: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://www.cnblogs.com/zktww/p/18361752

相关文章

  • 在 Vue 自定义事件中,父组件如何接收子组件传递的多个参数?
    在Vue中,自定义事件是父组件和子组件之间通信的重要方式。父组件可以监听子组件的事件,子组件则通过触发自定义事件将数据传递给父组件。如果子组件需要向父组件传递多个参数。 $emit 方法使用一、场景介绍假设我们有一个父组件和一个子组件。子组件需要通过自定义事件向父组......
  • MFC自定义按钮实现
    MFC中要实现自定义按钮,首先要创建一个类并继承自CButton。我这里创建的类名为CMainButtonclassCMainButton:publicCButton{ DECLARE_DYNAMIC(CMainButton)public: CMainButton(UINTnID,CRectrcWnd,CWnd*pParent=nullptr);//nID为按钮ID,rcWnd为按钮位置 virtual~CM......
  • C语言学习笔记 Day13(复合类型/自定义类型)
    Day13 内容梳理:目录Chapter9 复合类型(自定义类型)9.1结构体(1)结构体变量定义、初始化(2)嵌套结构体(3)结构体赋值(4)结构体和指针(5)结构体做函数参数9.2共用体(联合体)9.3枚举9.4typedef关键字Chapter9 复合类型(自定义类型)9.1结构体有时需要将不同类型的数组......
  • allure报告自定义logo图片和文字
    有时根据项目需要把allure报告的logo换成公司的,步骤如下:1、将自定义的logo图片放到static文件夹中,尺寸大小100*100D:\allure-2.13.9\plugins\custom-logo-plugin\static      2、编辑styles.css文件。    修改和增加如下css:.side-nav__brand{......
  • 全面掌握 Spring Cloud LoadBalancer:从自定义到策略优化的实战教程
    引言在微服务架构中,负载均衡是保障系统高效运行的关键技术之一。无论是服务端负载均衡还是客户端负载均衡,合理的负载均衡策略都能显著提升系统的稳定性和响应速度。本文将从基础概念入手,详细讲解如何在SpringCloud中实现和优化负载均衡,并结合实际案例,帮助读者快速上手并......
  • 自定义JSON名
    lSer:=TMVCJsonDataObjectsSerializer.Create;trylSer.DataSetToJsonArray(MasterDBHelper.Query,lJObj.a['m'],TMVCNameCase.ncLowerCase,[],procedure(constaField:TField;constaJsonObject:TJSONObject......
  • Qt - QTimer 定时器深入使用
    QTimer1、定时器执行start(0)时:会立即启动定时器,且超时时间为0,即一直超时并执行超时函数 2、对于同一定时器,当定时器是start状态,再次执行start函数,Qt会将定时器stop后重新启动该定时器 3、对于同一定时器,当再次执行start函数,Qt会以新的超时时间开始该定时器,比如setInterva......
  • 设定一个闹钟,一定时间后,给当前进程发送14( SIGALRM)号信号
    intmain(){alarm(5);intcnt=1;while(true){std::cout<<"second="<<cnt<<std::endl;cnt++;sleep(1);}return0;}voidhandler(intsig){std::cout<<"getsig:"<<sig<<std::endl;ex......
  • 自定义Starter
    pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://mave......
  • 自定义小灯状态翻转函数
    一、函数原理   函数主要是通过 uint8_tGPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)这个读取指定的I/O口的电平,来实现小灯状态的翻转。二、示例代码voidLED_Blue_Turn(void){ if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==0) { GPIO_Se......