SpringBoot如何整合定时任务调度

 时间:2024-10-14 10:26:44

1、所有的系统开发里面定时调度绝对是一个核心的话题,对于定时调用的实现在实际开发之中可以使用:TimerTask,Quartz,SpringTask配置,实际上这里面最简单的配置就是Spring自己所提供的Task处理。如果要想实现定时调度,只需要配置一个定时调度的组件类即可:package com.gwolf.task;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import java.time.Instant;@Componentpublic class MyScheduler { @Scheduled(fixedRate = 2000) //采用间隔调用 public void runJobA() { System.out.println("[MyTaskA-间隔调度***" + Instant.now()); } @Scheduled(cron = "* * * * * ?") public void runJobB() { System.err.println("[MyTaskB-定时调度调度***" + Instant.now()); }}

SpringBoot如何整合定时任务调度

2、如果现在要想执行此任务,那么还需要有一稍僚敉视个基本的前提:你的程序启动类上一定要启用调度处理。package com.gwolf;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.embedded.EmbeddedServletContainer;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplication //启动SpringBoot程序,而后自带子包扫描。@EnableTransactionManagement@EnableSchedulingpublic class StartSpringBootMain { public static void main(String[] args) { SpringApplication.run(StartSpringBootMain.class, args); }}

SpringBoot如何整合定时任务调度

3、启动程序运行主类,查看程序的执行结果:

SpringBoot如何整合定时任务调度

4、这个时候所实现的任务调用只是串行任务调度,也就是说所有的任务时候一个一个的执行的处理方式,那么如果现在有一个任务所花费的时间特别的畅,则其他的任务都会挤压,实际开发之中很明显这种处理是不可能存在。

SpringBoot如何整合定时任务调度

5、如果要想启动并行的调度处理,则一定要准备出一个线程调度池,进行一个线程调度的配置类:package com.gwolf.config;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.SchedulingConfigurer;import org.springframework.scheduling.config.ScheduledTaskRegistrar;import java.util.concurrent.Executors;@Configurationpublic class SchedulerConfig implements SchedulingConfigurer{ //开启一个线程调度池 @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(Executors.newScheduledThreadPool(100)); }}

SpringBoot如何整合定时任务调度

6、在以后所编写的定时任务调用的时候一定要准备好一个线程池,这样才可以让多个任务并行执行。

SpringBoot如何整合定时任务调度
  • 怎样使用VBA统计格式为“常规”之单元格个数?
  • Excel使用VBA程序自动换行
  • 在VBA中,正则表达式实例应用(10)
  • excel怎么截取字符串
  • 怎样使用VBA删除工作簿中所有空白工作表?
  • 热门搜索
    关于读书节的手抄报 关于环保的手抄报内容 数学王国手抄报 数学手抄报的资料 小学生守则手抄报 语言的魅力手抄报 关于科技的手抄报内容 民族精神手抄报 四年级上册数学手抄报 初中手抄报图片大全